计算机为什么选用二进制补码
答案:1 悬赏:80 手机版
解决时间 2021-04-14 23:37
- 提问者网友:雾里闻花香
- 2021-04-14 03:52
计算机为什么选用二进制补码
最佳答案
- 五星知识达人网友:酒安江南
- 2021-04-14 05:31
1.总的概念
数在计算机中是以二进制形式表示的;
数分为有符号数和无符号数;
原码、反码、补码都是有符号定点数的表示方法;
无符号数全部按正数处理;
一个有符号定点数的最高位为符号位,0是正,1是负;
2.反码,补码定义
正数:
原码=反码=补码
负数:
原码
反码=其原码除符号位之外的各位求反
补码=反码+1 (如果+1之后有进位的,要一直往前进位,包括符号位)
3.运算示例
正零:00000000
负零:10000000
这两个数其实都是0,但他们的原码却有不同的表示。
但是他们的补码是一样的,都是00000000
特别注意,如果+1之后有进位的,要一直往前进位,包括符号位!(这和反码是不同的!)
[10000000]补
=[10000000]反+1
=11111111+1
=(1)00000000
=00000000(最高位溢出了,符号位变成了0)
有人会问
10000000这个补码表示的哪个数的补码呢?
其实这是一个规定,这个数表示的是-128
所以n位补码能表示的范围是
-2^(n-1)到2^(n-1)-1
比n位原码能表示的数多一个
又例:
1011
原码:01011
反码:01011 //正数时,反码=原码
补码:01011 //正数时,补码=原码
-1011
原码:11011
反码:10100 //负数时,反码为原码取反
补码:10101 //负数时,补码为原码取反+1
0.1101
原码:0.1101
反码:0.1101 //正数时,反码=原码
补码:0.1101 //正数时,补码=原码
-0.1101
原码:1.1101
反码:1.0010 //负数时,反码为原码取反
补码:1.0011 //负数时,补码为原码取反+1
4.几个特殊定义:
n位补码能表示的范围:有符号数是 -2^(n-1)到2^(n-1)-1 无符号数是 0-2^n-1
-128的补码是10000000, -128+1=-127 ,(-127)补=10000001=10000000+00000001 符合运算规则
0的补码00000000
数在计算机中是以二进制形式表示的;
数分为有符号数和无符号数;
原码、反码、补码都是有符号定点数的表示方法;
无符号数全部按正数处理;
一个有符号定点数的最高位为符号位,0是正,1是负;
2.反码,补码定义
正数:
原码=反码=补码
负数:
原码
反码=其原码除符号位之外的各位求反
补码=反码+1 (如果+1之后有进位的,要一直往前进位,包括符号位)
3.运算示例
正零:00000000
负零:10000000
这两个数其实都是0,但他们的原码却有不同的表示。
但是他们的补码是一样的,都是00000000
特别注意,如果+1之后有进位的,要一直往前进位,包括符号位!(这和反码是不同的!)
[10000000]补
=[10000000]反+1
=11111111+1
=(1)00000000
=00000000(最高位溢出了,符号位变成了0)
有人会问
10000000这个补码表示的哪个数的补码呢?
其实这是一个规定,这个数表示的是-128
所以n位补码能表示的范围是
-2^(n-1)到2^(n-1)-1
比n位原码能表示的数多一个
又例:
1011
原码:01011
反码:01011 //正数时,反码=原码
补码:01011 //正数时,补码=原码
-1011
原码:11011
反码:10100 //负数时,反码为原码取反
补码:10101 //负数时,补码为原码取反+1
0.1101
原码:0.1101
反码:0.1101 //正数时,反码=原码
补码:0.1101 //正数时,补码=原码
-0.1101
原码:1.1101
反码:1.0010 //负数时,反码为原码取反
补码:1.0011 //负数时,补码为原码取反+1
4.几个特殊定义:
n位补码能表示的范围:有符号数是 -2^(n-1)到2^(n-1)-1 无符号数是 0-2^n-1
-128的补码是10000000, -128+1=-127 ,(-127)补=10000001=10000000+00000001 符合运算规则
0的补码00000000
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯