按位取反 | 您所在的位置:网站首页 › Python按位取反的计算机计算原理 › 按位取反 |
在java中,所有数据的表示方式都是以补码的形式来表示,如果没有特别的说明,java中数据类型默认为int类型,int数据类型的长度是8 位,也就是32字节,32bit的意思;因此 正数的按位取反 : 正数的源码、反、补码都相同。 1.先把正数转换成二进制 2.把二进制取反再加一 以2为例 (1)2的二进制是0000 0000 0000 0000 0000 0000 0000 0010 (2)取反:1111 1111 1111 1111 1111 1111 1111 0010 (3)加一:1111 1111 1111 1111 1111 1111 1111 0011 这是-3的二进制 这是符号位 1代表负数 0代表正数 (4)所以2 的按位取反是-3; 负数的按位取反: 关系: 负数的补码=反码+1; 过程:负数的源码就是其绝对值转化成二进制 取反得到反码 然后加一得到的结果 (负数的源码就是其绝对值的源码取反,然后加一) 以-5为例: (1):先取-5的绝对值 5 (2)把5转换成二进制为0000 0000 0000 0000 0000 0000 0000 0101 (3)对-5的二进制取反为1111 1111 1111 1111 1111 1111 1111 1010 (4)对其加一 1111 1111 1111 1111 1111 1111 1111 1011 这是计算机内部储存的补码 (5)对补码取反 0000 0000 0000 0000 0000 0000 0000 0100 就是源码 这是4的二进制 (6)所以-5的按位取反是4 |
CopyRight 2018-2019 实验室设备网 版权所有 |