注册 登录
编程论坛 数据结构与算法

数值转化问题

chenzhaoxia 发布于 2016-09-12 21:50, 2366 次点击
只有本站会员才能查看附件,请 登录
第十题,90h化成十进制是9*16=144化成二进制为10010000再化成十进制是-16答案到底是啥😂
4 回复
#2
书生牛犊2016-09-12 22:58
这是概念性的东西

原码就是这个数字的本身,所以知道这个数字的原码==知道这个数的本身--》x=144
反码就是二进制每一位都取反得来的,所以y=01101111=?
补码,
补码特性
1、一个负整数(或原码)与其补数(或补码)相加,和为模。
2、对一个整数的补码再求补码,等于该整数自身。
所以z=10010000的补码,取反加1=01101111+1=01110000=?


#3
chenzhaoxia2016-09-12 23:39
我想问的是90h通过乘以位权算出的十进制跟转化为二进制再转化为十进制得出的数不一样最高位1到底代表符号位还是数值位?
#4
书生牛犊2016-09-13 12:04
这道题考察的是原码、反码、补码。那么就不要把它翻译成十进制数,你再试图把90H翻成10进制144的时候就理解错概念了。

有原码、反码、补码,那么这个数字的最高位就一定是用来表示正负的符号位。你如果直接翻译成十进制数,岂不是把符号位当成了2^8在用?


-----这种数学题本身一点意思也没有,为什么?因为计算机当中存储数字的格式比如int类型那都是4个字节的。long.longlong什马的就更别说了。而原码,反码,补码只是针对计算机中存储整数时的情形的考究。给出的90H只有8个位,但是题目有没有指出这8个位当中究竟有没有符号位,纯粹胡闹。
就像小学时候的行程问题“甲乙两人同时从A地向B地行使,甲比乙快1/5,甲到达B地后掉头回来,问,当甲乙相遇时,甲比乙多走了多少路程?”  兰妮佳!他们为什么那么白痴要分开又要碰头?

#5
chenzhaoxia2016-09-13 14:08
回复 4楼 书生牛犊
奥,非常感谢,我就是在想90h化成二进制最高位为1那么它应该为数值位,又因为他有原码反码那么他应该为符号位!实在有点想不明白。
1