(理论贴)进制原码补码反码 (持续更新~~)

原码:二进制表示 形式:
ex:+1:00000001;

       -1:10000001;

反码:正数的原码=反码;负数的补码为原码除符号位按位取反:

ex: -3:10000011--->11111100;

补码:正数的原码=反码-补码;

        负数的补码为原码除符号位按位取反+1;

10000000这个补码表示-128;

n位补码表示范围为-2^(n-1)--2^(n-1)-1;

PS:补码转原码:

若为正数补码即为原码;

若为负数则求此补码的原码;

例如:1111 1111  -->1000 0000-->1000 0001-->-1;

 

 

进制操作符:

左移运算符(<<):

左移一位,低位空出补0,高位左移溢出舍弃此高位;

例如: 127    0111 1111;

127<<  1111 1110-->1000 0001-->1000 0010--> -2;

左移运算符相当于*2操作,(比*2操作快)

 

右移运算符(>>):

类似于左移 ;

 

与运算(&):

1.&0 与0相与可清零;

2.&1 与1 相与可保留原值;

ex: 255-->1111 1111---将某Int型数和其&运算可保留后八位,具体应用可详见 HDU - 5980--J - Find Small A 链接:http://acm.hdu.edu.cn/showproblem.php?pid=5980

常可用于判断奇偶   x&1=0则为偶数,x&1=1则为奇数;

 

或运算(|):

1.与0相或可保留原值;

2.与1相或可将此位设为1;

 

异或运算(^):

 

取反运算(~):

 

posted @ 2017-05-17 17:56  飞将-奉先  阅读(223)  评论(0编辑  收藏  举报