温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

二进制和位运算符的联系

发布时间:2021-06-18 15:39:22 来源:亿速云 阅读:155 作者:chen 栏目:编程语言

这篇文章主要介绍“二进制和位运算符的联系”,在日常操作中,相信很多人在二进制和位运算符的联系问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”二进制和位运算符的联系”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

  • 十进制转二进制

    • 正数转二进制 

        除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

到此,关于“二进制和位运算符的联系”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI