admin 管理员组文章数量: 887021
二进制
什么是2进制
-
逢二进一的计数规则
-
如何将2进制转换为10进制?
- 将一个2进制数每个1位置的权值累加即可
-
Java 所有的变量\常量存储的都是2进制数!
什么是16进制
- 逢16进1的计数规则
- 因为2进制的书写太繁琐麻烦
- 所以常常用16进制来缩写2进制数字
- 怎么缩写:将2进制从最低位开始,每4位2进制缩写为1位16进制
补码
-
计算机中处理有符号数(正负数)的一种编码方式,java中的补码最小类型是int,32位数
-
以4位2进制为例讲解补码的编码规则:
- 计算的时候如果超出4位数就自动溢出舍弃,保持4位数不变
- 将4位2进制数分一半作为负数使用
- 最高位称为符号位,高位为1是负数,高位为0是正数
int n = -3; System.out.println(Integer.toBinaryString(n));/* 规律数: 1)0111为4位补码的最大值,规律是1个0和3个1,可以推导出:32位补码的最大值,是1个0和31个1-----(011111111...) 2)1000为4位补码的最小值,规律是1个1和3个0,可以推导出:32位补码的最小值,是1个1和31个0-----(100000000...) 3)1111为4位补码的-1,规律是4个1,可以推导出:32位补码的-1是,是32个1------------(11111111...) */ int max = 2147483647; //int的最大值 int min = -2147483648; //int的最小值 System.out.println(Integer.toBinaryString(max)); //011111... System.out.println(Integer.toBinaryString(min)); //100000... System.out.println(Integer.toBinaryString(-1)); //11111...
-
深入理解负值:
记住-1的编码是32个1 用-1减去0位置对应的权值 -
互补对称:
公式:-n=~n+1 结论:一个数的补码=这个数取反+1 举例说明:int n = -3; int m = ~n+1; System.out.println(m); //3 -3的补码就是-3取反+1
位运算
~ 取反
& 与运算
| 或运算
>>> 右移位运算
<< 左移位运算
补充:
权: 64 32 16 8 4 2 11 1 0 0 1 0 0 = 100 右移位1 1 0 0 1 0 = 501 1 0 0 1 = 251 1 0 0 = 12 权: 64 32 16 8 4 2 1
n 0 1 0 1 = 5
m 0 1 0 1 = 10
k 0 1 0 1 = 20int n = 5;
int m = n<<2;
System.out.println(m); //20
本文标签: 二进制
版权声明:本文标题:二进制 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1686819803h39370.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论