这篇文章主要介绍“二进制和位运算符的联系”,在日常操作中,相信很多人在二进制和位运算符的联系问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”二进制和位运算符的联系”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
除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
到此,关于“二进制和位运算符的联系”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。