黑马程序员技术交流社区

标题: 二进制求补码与砍前三位的字节问题,自己的测验结果 [打印本页]

作者: kaysun    时间: 2015-9-7 21:36
标题: 二进制求补码与砍前三位的字节问题,自己的测验结果
第二题:
byte  by = 130;有没有问题?有问题如何解决?结果是多少呢?

有问题,因为byte的取值范围是-128~127   130超了,会造成精度丢失
130
原码:10000010   
反码:11111101
补码:11111110        //-126



140
原码:10001100
反码:11110011
补码:11110100        //-116



-300
原码:1 00101100
反码:  00101100
补码:  00101100        //44

正数原反补都一样

-130
原码:10000010
反码:11111101
补码:11111110        //-126

运算时不管原来是正是负,不根据原来数值判断反码变不变
先砍掉,再看首个数是正还是负,由这个数判断,反码变不变
例如-130    先按照int类型写下他的二进制,第32位是一,但是这时
先砍掉前面的三个字节,再来判断正负,根据正负写元反补,
(不是直接判断正负,再来写下原反补,再砍掉)   
他的byte类型数值第一位是0,他就按照正数的原反补来

两数相加的问题
运算是原码转成补码运算依靠补码,还有结果就是补码的值,不用再由补码转回原码
作者: ehehe    时间: 2015-9-7 21:38
这东西可以直接忽略不用管
作者: kaysun    时间: 2015-9-7 21:41
ehehe 发表于 2015-9-7 21:38
这东西可以直接忽略不用管

恩恩,算完了,我舍友告诉我基本用不上,重点没在这里




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