黑马程序员技术交流社区
标题:
关于位运算符反码的问题.!!..
[打印本页]
作者:
刘俊佳
时间:
2012-7-28 10:58
标题:
关于位运算符反码的问题.!!..
本帖最后由 刘俊佳 于 2012-7-29 21:06 编辑
毕老师视频中讲到如果要取6的的负数的话,那就是先取6的反码再加一,就得到-6,那么这样的话,是不是我就可以直接知道任意一个正数或者任意一个负数的反码了,比如~7就是-8
作者:
侯宪博
时间:
2012-7-29 05:17
首先要了解
原码,反码,补码
这个是微机原理的知识
正数
原码,反码,补码都是它本身
0的原码有两个,拿8位来说一个全是0一个是1000-0000
负数
原码是符号位(第一位)为1,其余跟正数一样
反码是原码除符号位其余都取反
补码是反码+1
计算机上的定点数全是以补码形式存在
原码和反码是拿来给人计算补码的
其次,毕老师说的那是一个规律
不是反码加1
而是取反加1
也就是说一个正数
把所有位取反加1
就是这个数负数的补码
按照上面的算法试一试,绝对都是这个规律
希望对你有所帮助。。。
作者:
高薇
时间:
2012-7-29 06:22
负数的二进制表现形式:
6=110
-6:其实就是6的二进制取反,然后加1
0000-0000 0000-0000 0000-0000 0000-0110
1111-1111 1111-1111 1111-1111 1111-1001
+ 0000-0000 0000-0000 0000-0000 0000-0001
=1111-1111 1111-1111 1111-1111 1111-1010
规律:负数的最高位是1。
注意:这里强调是正数的取反加1.
作者:
刘俊佳
时间:
2012-7-29 21:06
谢谢楼上各位的解答!!,明白了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2