原码:原码是二进制数字的一种简单的表示法。二进制首位为符号位,1代表负,0代表正。
为都江堰等地区用户提供了全套网页设计制作服务,及都江堰网站建设行业解决方案。主营业务为成都网站制作、成都网站设计、外贸营销网站建设、都江堰网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
反码:反码可由原码得到。如果是正数,反码与原码相同;如果是负数,反码是其原码(符号位除外)各位取反而得到的。
补码:补码可由原码得到。如果是正数,补码与原码相同;如果是负数,补码是对其原码(除符号位外)各位取反,并在末位加1而得到的(有进位则进位,但不改变符号位)。
python有按位取反的操作符:~ 但是对负整数要小心操作,因为在计算机系统中,数值一律用补码来表示和存储的。
python 3的整型以16bit递增。
0xf0 =0b 0000 0000 1111 0000
~0xf0之后得到1111 1111 0000 1111
[1][111 1111 0000 1111]
确定是负数,有负数等于绝对值反码加一。求补码形式。
绝对值减1得:111 1111 0000 1110
反码得:000 0000 1111 0001
得-0xf1即-241(你那的~a[0]得-241)
要求得到[0,256),限定一下范围即可。
(~a[0])0xff
15
按位取反运算符:~
运算结果:~x=-(x+1)
例如:~9为-10
~(-9)为8
这不是按位取反吗?怎么结果是这样?
看下面。
转二进制:0 1001
计算补码:0 1001
要知道它所表达的数是多少,需要转换为原码
_____
转为原码:按位取反:1 1001
末位加一:1 1010
符号位为1是负数,即-10
转二进制:1 1001
计算补码:1 0111
要知道它所表达的数是多少,需要转换为原码____
转为原码:正数的补码和原码相同,仍为:0 1000,即8