最近在看集合源码,发现ArrayDeque里面用到了大量的&运算,这牵扯到了二进制。突然发现自己对负数的二进制有点模糊了,对此进行了一些支持补充。
首先我们要对原码、反码和补码有个了解:
1、所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
2、反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
...
分类:
编程语言 时间:
2014-09-09 16:11:58
阅读次数:
257
insert p: 在p+1的位置插入v,然后 v前面的正数的个数= -v前面的负数的个数 ,这样找到的位置就是 -v的插入位置remove v: 因为可以记录每个v的节点标号,所以直接操作。query v:同remove。开始时,用优先队列来维护当前最小的v值,TLE。然后用线段树模拟了一个...
分类:
其他好文 时间:
2014-09-09 15:53:49
阅读次数:
305
问题:printf("%x,%d\n",~7,~7);解:十进制数字7的二进制码00000000000000000000000000000111按位取反运算~711111111111111111111111111111000所以printf("%x\n",~7);//十六进制输出:fffffff811111111111111111111111111111000的最高八位符号位(11111111,表示负数),有符号整..
分类:
编程语言 时间:
2014-09-09 13:50:59
阅读次数:
231
思路: 注意符号,溢出。
思路: 注意负数和溢出情况都是 false. 其余情况,就是反转再判断,参考上题.
分类:
其他好文 时间:
2014-09-09 10:40:08
阅读次数:
179
思路: 类同 趣味算法之数学问题:题4.
两点需要注意: 1. 除数或被除数为最大负数时,转化为正数会溢出。2. divisor + divisor 可能会溢出。
分类:
其他好文 时间:
2014-09-09 10:37:28
阅读次数:
205
判断一个 int 是否为回文的有一点要注意的是:int x;int _x = abs(x);对 x 取绝对值的时候,会发生溢出。比如 x = INT_MIN 即 -2147483648 而 INT_MAX 为2147483647其实,负数不是回文数
分类:
其他好文 时间:
2014-09-06 21:08:53
阅读次数:
163
序列:由字符串,元组,列表组成有两个特点:可以通过索引操作符和切片操作符索引可以是负数,str[-1]表示取出最后一个元素切片操作符是序列名后跟一个方括号基本操作符:len()得出序列长度min()得出序列中最小的值max()得出序列中最大的值+连接两个序列*重复序列元素,..
分类:
编程语言 时间:
2014-09-05 16:26:42
阅读次数:
204
UVA 1045 - The Great Wall Game
题目链接
题意:给定一个n*n的棋盘,有n个棋子在上面,现在要移动棋子,每一步代价是1,现在要把棋子移动到一行,一列,或者在主副对角线上,问最小代价
思路:二分图完美匹配,枚举每种情况,建边,边权为曼哈顿距离,然后km算法做完美匹配算出值即可,由于要求最小值所以边权传负数,这样做出来的值的负就是答案
代码:
...
分类:
其他好文 时间:
2014-09-04 20:57:30
阅读次数:
340
一,了解即可
1.整数存储
数据的存储,二进制储存基本不用的,只要知道正数的原码,反码补码是相同的,符号位是0,负数原码符号位为1,其余是表示数值的绝对值,反码符号位为1,其余各位对原码取反,补码为反码加1.
2.实型数据存储
不做介绍
3字符型存储
每个字符占一个字节,存储它的ASCII码。如‘A’为65.详情见ASCII表
二 各种数据的大小
数...
分类:
其他好文 时间:
2014-09-04 13:26:29
阅读次数:
192
问题描述:
给定一个整数序列, 序列中可能有负数。 目的是找出这个序列的连续子序列(即子序列的元素的选取是连续的从序列中选取的)。即通过确定i,
j 的值, 使得的值达到最大。 我们定义, 当所有的元素为负数值的时候, 那么maximum subsequence sum
为0。
下面我们用动态规划的技术去求解。
为了找到最大连续子序列和, 不难看出, 在扩展我们的求和窗口...
分类:
其他好文 时间:
2014-09-02 16:00:14
阅读次数:
187