目录
1、基数:每个数码位所用到的符号的个数,r进制数基数是r。
2、真值:我们常说的带正负号的数。 例:-1,12
3、机器数:把正负号数字化的数,也就是存在计算机内部的数。(二进制位第一位表示符号这种)
二级制各个位置上的值
各个进制的表示:
十进制转化为二进制:75.3为例:
整数部分:从下向上写
小数部分:从上向下写
用四位二进制数来表示一位十进制数。
四位二进制数最多表示16个数,但是十进制数只有0-9所以会有6个冗余字段,即1010-1111内没有定义任何十进制数。
在计算机内实现8421码的加法:
1、如果结果不在0000-1001内,则给结果+6即0110所得的数在前面补0凑齐位数。
2、如果结果在定义的0000-1001内可直接计算。
整体总结:
1、计算机通用寄存器的字长决定了计算机无符号位数的上限,n位机器最大表示2^n -1
2、无符号数用全部位数来表示数字,没有符号位。
3、最大数字是全1,最小是全0。
加法: 直接按位相加。
减法:减数按位取反,末尾加1,所得数与被减数进行加法运算
整体总结:
原码不能用于两个数字的计算,因为符号位不能参与运算。因此需要用补码来进行真值的计算。
负数的原码转化为补码的快速方法:
从右向左找到第一个1,从它的左边第一位到符号位之间的所有数按位取反即可。符号位是不取反的。
符号位也参与运算,如果有溢出只取运算的那几位。
例:4位补码数1100和0100相加结果是1 0000,但是由于数是四位,所以最终结果为0000。
首先将减数转化为其相反数,即A-B = A+(-B).
补码的转化:
常规法:全部位取反,末尾+1. 是全部位,符号位也要取反。
快捷法:从右向左找到第一个1,其左边的全部位都按位取反,包括符号位。
上面的19. 0001 0011,从右向左第一个1在第一位,所以将其左边的数全部取反,右边的数不变即其补码的相反数。 1110 1101
将补码的符号位取反即得到移码:移码只能表示整数。
1、保证传输数据中的1的个数为奇数或偶数个。奇校验保证为奇数个,偶校验保证1的个数为0数个。
2、检验原理:将接收到的数据进行个信息位的异或运算。如果结果是0表示传输正确,如果是1表示传输错误。
3、奇偶校验只能保证传输过程中有奇数个位置发生错误,不能检验出偶数个位置发生错误。
4、奇偶校验只能检错不能纠错。
补码中只有一个+0没有-0,-0表示一个最小的负数。八位二级制数补码1 000 0000表示-128
对于8位二进制数,补码的表示范围是-128~+127,而原码和反码的表示是-127~+127.所以对于-128来讲这个补码不能用8位二进制用原码反码表示,因为反码和原码对于八位来讲最小是-127。
浮点数的引出主要是为了表示更大的数,浮点是类似于十进制数的科学计数法。
移码 = 真值+偏移值。 这个偏移值是认为定义的,在前面的计算中偏移值取的是2^n,但是在IEEE754标准中,偏移值取2^n -1
计算时仍是将补码的符号位取反求得移码,然后移码结果再-1即可。
一位数符,八位阶码(移码表示),23位数值位(原码表示)
因为尾数用原码表示,所以根据浮点数的规格化,无论是正数还是负数,小数点后第一位必须是1,所以我们这个1默认有,但是不存,所以下图写的尾数数值位23位但实际是24位,因为那个默认的1未存。
阶码的-127和-128不用于表示数,所以阶码最小是-126
将浮点数转化为IEEE754标准案例:
1、将浮点数转化为标准形式 -1.1*2^-1 负数的原码必须是1.1****
2、确定阶符 1
3、去掉最高位的1确定真值部分 .1000......
4、确定阶码的移码: 阶码是-1所以补码是1111 1111 移码是0111 1110
5、将数据按规定的位数配对即可。
将IEEE754标准转化为真值:
计算阶码的真值 = 移码 - 偏移量 (和十进制一样计算)
1、标准表示:
2、特殊值表示: