计算机组成原理:十进制、原码、反码、补码的转换关系
2017-04-23 22:25
766 查看
原码、反码、补码的第一位都是是符号位,0为正数,1为负数,不论小数整数都是如此。
eg:0.2(2)是个负数,1.2(2)是个正数,11112(2)是个负数,01112(2)是个正数。
十进制->二进制原码
二进制原码就是单纯求模运算得到的。
这个转换规则小数和整数区别较大,正数向负数转化很简单。
正整数:除2取余,直到商为零,余数倒叙排列
eg:8(10)=0100(2) 当然,如果是一个8位机的话,一个数字由8个二进制位组成,所以应该是8(10)=0000
0100(2)
注意:对于一个8位机来讲,原码能表示的整数范围是-128~+127,和256没关系。
正小数:整数部分按上面说的办,这里只说小数部分该如何处理。
乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数。
eg:将0.125(10)换算为二进制
0.125*2=0.250 小数点前为0,答案第一位为0
0.250*2=0.5 小数点前为0,答案第二位为0
0.5*2=1 小数点前为1,答案第三位为1
所以0.125(10)=0.001(2)
负数:先求出其绝对值的二进制原码,然后将第一位(也就是符号位上的0)强行改为1就可以了。
eg:-0.5(10)=1.1(2) -1.5(10)=11.1(2)
-8(10)=1100(2) 同样,如果是一个8位机的话,应该是-8(10)=1000 0100(2)
二进制原码->二进制反码
这个转换小数和整数一样,但是正数和负数不一样。
对于正数,反码就是其原码本身。对于负数,反码是其原码符号位不变(还是1),其余各位直接取反。
eg:
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
二进制原码->二进制补码
正数的补码和源码相同,负数的补码=反码+1。整数小数用同一套规则。
[-y]补=-[y]补+2^-n 即:对[y]补包括符号位求反最末位加1
eg:0.2(2)是个负数,1.2(2)是个正数,11112(2)是个负数,01112(2)是个正数。
十进制->二进制原码
二进制原码就是单纯求模运算得到的。
这个转换规则小数和整数区别较大,正数向负数转化很简单。
正整数:除2取余,直到商为零,余数倒叙排列
eg:8(10)=0100(2) 当然,如果是一个8位机的话,一个数字由8个二进制位组成,所以应该是8(10)=0000
0100(2)
注意:对于一个8位机来讲,原码能表示的整数范围是-128~+127,和256没关系。
正小数:整数部分按上面说的办,这里只说小数部分该如何处理。
乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数。
eg:将0.125(10)换算为二进制
0.125*2=0.250 小数点前为0,答案第一位为0
0.250*2=0.5 小数点前为0,答案第二位为0
0.5*2=1 小数点前为1,答案第三位为1
所以0.125(10)=0.001(2)
负数:先求出其绝对值的二进制原码,然后将第一位(也就是符号位上的0)强行改为1就可以了。
eg:-0.5(10)=1.1(2) -1.5(10)=11.1(2)
-8(10)=1100(2) 同样,如果是一个8位机的话,应该是-8(10)=1000 0100(2)
二进制原码->二进制反码
这个转换小数和整数一样,但是正数和负数不一样。
对于正数,反码就是其原码本身。对于负数,反码是其原码符号位不变(还是1),其余各位直接取反。
eg:
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
二进制原码->二进制补码
正数的补码和源码相同,负数的补码=反码+1。整数小数用同一套规则。
[-y]补=-[y]补+2^-n 即:对[y]补包括符号位求反最末位加1
相关文章推荐
- 计算机组成原理之原码、补码、反码和移码
- 计算机组成原理---如何将真值转成补码,原码,移码,反码。
- 计算机组成原理-原码, 反码和补码
- 计算机组成原理(原码、反码、补码)
- 计算机组成原理之-反码、补码、移码
- C语言基础一之预备知识(计算机结构组成、计算机系统组成、进制、原码反码补码)
- 关于计算机数字表示原理的研究(原码,反码,补码)
- 组成原理原码反码补码移码
- 类型强制转换与计算机的原码,补码,反码
- 原码、反码和补码(C语言 计算机原理)
- 原码反码补码详解与十进制转换为二进制的各种实现
- 计算机基础知识-原码反码补码
- 计算机中的原码、补码和反码
- 计算机中的原码、反码和补码
- 计算机中的原码、反码和补码
- 计算机中的原码、反码和补码
- 输入一个十进制整数,输出其二进制原码、反码及补码
- 原码、反码、补码,计算机中负数的表示
- 原码、反码、补码,计算机中负数的表示
- 数字电路中的原码、反码、补码怎么求简单?负数怎么转换数制?