标签:11111111 反码 00000000 补码 二进制 原码
原码、反码、补码及进制
原码、反码、补码(重点、难点)
-
二进制的最高位是符号位:0表示整数,1表示负数;
-
正数的原码,反码,补码都一样(三码合一);
-
负数的反码 = 它原码的符号位不变,其他位取反;原码= 它反码的符号位不变,其他位取反
-
负数的补码 = 它的反码+1,反之也是负数的反码 = 负数的补码-1;
-
0的反码,补码都是0;
-
java中的数都是有符号的;
-
在计算机运算的时候,都是以补码的方式来运算的;
-
当我们看运算结果的时候,要看它的原码;
-
位运算,先得到数的原码--->得到反码--->得到补码(进行位运算,得到结果的补码)--->得到结果的反码--->得到结果的原码
2&3 | ~-2 | ~2 | 2|3 | 2^3 | |
---|---|---|---|---|---|
原码 | 00000000 00000000 00000000 00000010(2的原码) | 10000000 00000000 00000000 00000010 | 00000000 00000000 00000000 00000010 | 00000000 00000000 00000000 00000011(3的原码) | |
反码 | 同上 | 11111111 11111111 11111111 11111101 | 同上 | 同上 | 同上 |
补码 | 同上 | 11111111 11111111 11111111 11111110 | 同上 | 同上 | 同上 |
运算后的补码 | 00000000 00000000 00000000 00000010 | 00000000 00000000 00000000 00000001 | 11111111 11111111 11111111 11111101 | 00000000 00000000 00000000 00000011 | 00000000 00000000 00000000 00000001 |
运算后的反码 | 同上 | 00000000 00000000 00000000 00000001 | 11111111 11111111 11111111 11111100 | 同上 | 同上 |
原码 | 同上(2) | 同上(1) | 10000000 00000000 00000000 00000011(-3) | 同上(3) | 同上(1) |
-
高位补0
-
&:按位与,如果相应位都是1,则结果为1,否则为0
-
|:按位或,如果对应位有1,则结果为1,否则为0
-
^:按位异或,如果相应位值不同,则结果为1,否则为0
-
~:按位取反,二进制数的每一位,0变成1,1变成0
-
<<:算数左移,符号位不变,低位补0;按位左移运算符。乘于进制(2,8,10,16)eg:int a = 1<< 2;//
1*2*2 = 4;a<<b;即a*2,计算b次
-
>>
:算数右移,低位溢出,用符号位补溢出的高位;按位右移运算符。除以进制(2,8,10,16)eg:int a = 1>> 2;//1/2/2 = 0;a>>b;即a/2,计算b次 -
>>>
逻辑右移,也叫无符号右移,低位溢出,高位补0;
-
进制
-
二进制0b:转八进制,每三位一组,转出对应的八进制;转十六进制,每四位一组,转为对应的十六进制
-
八进制0:转二进制,将每一位转成一个3位的二进制数;
-
十进制:
-
十六进制0x:转二进制,将每一位转成一个4位的二进制数;
-
其他(a)进制转十进制:每一个位上的数×a^(位数-1)的和;
-
十进制转其他(a)进制:将该数不断除以a,直到商为0,将得到的余数从后至前排列,即为a进制数;
-
标签:11111111,反码,00000000,补码,二进制,原码 来源: https://www.cnblogs.com/xuduoduo92/p/16558115.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。