二进制和位运算符的联系
这篇文章主要介绍“二进制和位运算符的联系”,在日常操作中,相信很多人在二进制和位运算符的联系问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”二进制和位运算符的联系”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
创新互联主营蔡甸网站建设的网络公司,主营网站建设方案,成都app软件开发,蔡甸h5小程序开发搭建,蔡甸网站营销推广欢迎蔡甸等地区企业咨询
十进制转二进制
正数转二进制
除2取余,高位补零, 计算机内部表示数的字节单位是定长的,如8位,16位,或32位。所以位数不够时,高位补零
System.out.println(Integer.toBinaryString(10));
System.out.println(Integer.toBinaryString(Integer.MAX_VALUE));
System.out.println(Integer.toBinaryString(Integer.MIN_VALUE));
打印结果:1010
1111111111111111111111111111111
10000000000000000000000000000000
解析:Integer 4个字节占32位,打印时高位0省略Integer10的二进制实际为28个0+1010
所以在二进制中Integer最大值为正负表示符+31个1,0表示正数1表示负
负数转二进制
System.out.println(Integer.toBinaryString(21));
System.out.println(Integer.toBinaryString(-21));
打印结果:10101
11111111111111111111111111101011
-21的二进制转换过程:
21的二进制减1为10100,再进行取反得到01011
二进制转十进制
21的二进制为10101 = 1*2^0+0*2^1+1*2^2+0*2^3+1*2^4=1+4+16=21
11111111111111111111111111101011首位为1代表为负数 先取反加1转化为10101再转化为10进制前面添加负号
位运算符>>,<<, >>>
<< : 左移运算符,num << 1,相当于num乘以2
>> : 右移运算符,num >> 1,可除范围相当于num除以2
>>> : 无符号右移,忽略符号位,空位都以0补齐
12的二进制为1100,-12的二进制为0100
12>>4=0 位移后二进制 1
-12>>3=-2 位移后二进制0
-12>>4=-1 位移后二进制为1
右移运算符正数时最小值为0,负数时最小值为-1
-12 >>> 4=268435455
12 >>> 4 = 0
到此,关于“二进制和位运算符的联系”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
当前题目:二进制和位运算符的联系
网站URL:http://cdiso.cn/article/ijshij.html