黑马程序员技术交流社区
标题:
正.负数用二进制相加等用于0的问题以及负数怎么用二进制...
[打印本页]
作者:
d623234436
时间:
2015-12-18 00:30
标题:
正.负数用二进制相加等用于0的问题以及负数怎么用二进制...
byte a=3;
byte b=-3;
以二进制来计算a+b=0
0000 0011
+11111101(-3的补码)
-----------------
10000 0000(1后面跟了八个0,)
我想问的时这个1 为什么会取消掉,为什么不是转换到更大的存储类型?
求解
还有负数是怎么用二进制表示的,最好举例说明一下?谢谢!
作者:
xbin0316@qq.com
时间:
2015-12-18 07:48
baby,我给你说一个简单的。计算机的数据全都是用二进制的整数表示的,那么二进制里面最小的就是0,没有负数,那么计算机想表示负数怎么办呢?只好拿现有的数开刀了。比如byte型,他是八位,取值范围原本应该0--255
作者:
xbin0316@qq.com
时间:
2015-12-18 07:51
那这就没有负数了,为了表示负数,只好把0--255砍成两半,一半用来表示正数,一半用来表示负数。那怎么砍呢?那就是看最高位(符号位),大于1-0000000的表示负数,小于此的表示正数。
希望我自己的理解能帮到你。
作者:
d623234436
时间:
2015-12-21 21:52
xbin0316@qq.com 发表于 2015-12-18 07:51
那这就没有负数了,为了表示负数,只好把0--255砍成两半,一半用来表示正数,一半用来表示负数。那怎么砍呢 ...
恩 谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2