黑马程序员技术交流社区

标题: 关于按位取反的问题 [打印本页]

作者: 任振铭    时间: 2015-9-16 22:19
标题: 关于按位取反的问题
位运算~6=7,这道题不太理解,老师的讲解中涉及到了原码反码和补码,具体思路谁能告知一二?
作者: 1406046710    时间: 2015-9-17 11:56
~   是一元运算法,对数据的每个二进制位取反,即把1变为0,把0变为1。
①原码:就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值.
②反码:就是原码取反,正数反码就是本身,负数的反码就是在原码基础上符号位不变,其余位取反。
③补码:正数补码就是其本身,负数补码是在其原码基础上,符号位不变其他位取反在+1.
例如 6原码:  00000110   反码(按位取反): 11111001   
       -7原码 :  10000111  反码(按位取反) : 11111000  补码:11111001
     所以6~=-7

作者: 任振铭    时间: 2015-9-18 23:03
1406046710 发表于 2015-9-17 11:56
~   是一元运算法,对数据的每个二进制位取反,即把1变为0,把0变为1。
①原码:就是符号位加上真值的绝对值 ...

谢谢了,你说的很详细




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2