第一张是十进制负整数转二进制数,第二张是原码补码,这不是一回事吗?
答案:2 悬赏:10 手机版
解决时间 2021-02-28 17:14
- 提问者网友:呐年旧曙光
- 2021-02-28 08:20
最佳答案
- 五星知识达人网友:执傲
- 2021-02-28 08:58
非负数:原码=补码=反码
负数:反码=原码按位取反,补码=反码+1
计算机中存储补码
比如非负数就存他2进制,负数就比如-1
(假设是8位的byte)先获得数字部分00000001,然后取反11111110,然后+1=11111111
第一位是符号位,1表示负,否则表示非负,即-1在计算机中存储时二进制上全是1。
那么这么做的好处就是,减法可以直接当做加法
比如10-1,看做10+(-1)
那么可以看做00001010+11111111=100001001,
其中最高位的1已经超过8位byte的范围了,所以他是溢出的,最终结果是00001001
即10+(-1)=9
负数:反码=原码按位取反,补码=反码+1
计算机中存储补码
比如非负数就存他2进制,负数就比如-1
(假设是8位的byte)先获得数字部分00000001,然后取反11111110,然后+1=11111111
第一位是符号位,1表示负,否则表示非负,即-1在计算机中存储时二进制上全是1。
那么这么做的好处就是,减法可以直接当做加法
比如10-1,看做10+(-1)
那么可以看做00001010+11111111=100001001,
其中最高位的1已经超过8位byte的范围了,所以他是溢出的,最终结果是00001001
即10+(-1)=9
全部回答
- 1楼网友:洒脱疯子
- 2021-02-28 10:04
原码表示:将符号位数码化了的数,其中“+”用0表示,“-”用1表示。
反码表示:正数的反码表示与原码表示一样;负数的反码表示是原码表示的符号位不变,数值位逐位取反。
补码表示:正数的补码表示与原码表示一样;负数的补码表示是原码表示的符号位不变,数值位逐位取反后最低位加1(反码表示最低位加1)。
例:
[+63]原=0
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯