java int转二进制 将二进制数按位取反要注意什么呢?
将二进制数按位取反要注意什么呢?
按位求反是将每个数字的0变为1,1变为0。例如,binary:10011,按位求反是01100
Java使用补码来表示二进制数。在补码表示法中,最高位是符号位,正数的符号位是0,负数是1。补码如下:对于正数,最高位是0,其余表示值本身(用二进制表示)。例如,42的补码是00101010。对于负数,将该数的绝对值的补码逐位求逆,然后将1加到整数上,得到该数的补码。例如,-42的补码是11010110(00101010将11010101 1位取反,即11010110),0的补码是唯一的,都是100000000。(在原码和反码的表示中,0和-0的表示不是唯一的,请参阅相应的书籍)。此外,111111可用于表示-1的补码(这也是补码与原始码和逆码之间的差异)。
求负数的补码时按位取反再加一是什么意思?
~077o=11000000B是正确的,但在计算机中,整数是用补码表示的。正数的补码与原码相同,负数的补码是最高位为1,表示负数,其他低位则取负数的绝对值加1表示。例如,如果-64D由8位二进制补码表示,则最高位为1,表示负数。对于其余7位,-64D的绝对值为64D=1000000b,反向加1为1000000。如果与符号位(最高位)1拼接,则为11000000,因此11000000表示-64D。(后缀o表示八进制,D表示十进制,B表示二进制)。
java int转二进制 Java二进制算法 Java 二进制文件
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。