预习原码补码
预习
一. 机器数和真值
1. 原码
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:
[+1]原 = 0000 0001
[-1]原 = 1000 0001
第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:
[1111 1111 , 0111 1111] 即 [-127 , 127]
原码是人脑最容易理解和计算的表示方式.
计算公式:
2.反码
反码的表示方法是:正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
3.补码
补码的表示方法是: 正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
4.移码
移码最简单了,不管正负数,只要将其补码的符号位取反即可。
例如: X=-101011 , [X]原= 1010_1011 ,[X]反=1101_0100,[X]补=1101_0101,[X]移=0101_0101
疑难点
把这个几个归纳好用的知识记住差不多就可以了,不过那个模运算有点懵。
负数的反码是将其原码除符号位之外的各位求反
正数的原码,补码和反码都相同
负数的补码是将其原码除符号位之外的各位求反之后在末位再加1
移码最简单了,不管正负数,只要将其补码的符号位取反即可,负数的补码等于模与该负数绝对值之差。
定点整数-逗号隔开,定点小数-小数点隔开。
作业
试题1
二进制数-0111的8位原码是_1000 0111_______。
试题2
二进制数-0111的8位反码是__1111 1000____。
试题3
二进制数-0111的8位补码是_1111 1001_______。
试题4
二进制数-0111的8位移码是__0111 1001______。
试题5
二进制数-0011的8位原码是_1000 0011_______。
试题6
二进制数-0011的8位反码是__1111 1100______。
试题7
二进制数-0011的8位补码是__1111 1101______。
试题8
二进制数-0011的8位移码是_0111 1101_______。
试题9
二进制数-0010的8位原码是___1000 0010_____。
试题10
二进制数-0010的8位反码是__1111 1101______。
试题11
二进制数-0010的8位补码是_1111 1110_______。
试题12
二进制数-0010的8位移码是__0111 1110______。
试题13
二进制数+0111的8位原码是___0000 0111_____。
试题14
二进制数+0111的8位反码是__0000 0111______。
试题15
二进制数+0111的8位补码是__0000 0111______。
试题16
二进制数+0111的8位移码是___1000 0111_____。
试题17
二进制数+0011的8位原码是____0000 0011____。
试题18
二进制数+0011的8位反码是___0000 0011_____。
试题19
二进制数+0011的8位补码是____0000 0011____。
试题20
二进制数+0011的8位移码是__1000 0011______。
试题21
二进制数+0001的8位原码是__0000 0001______。
试题22
二进制数+0001的8位反码是__0000 0001______。
试题23
二进制数+0001的8位补码是__0000 0001___。
试题24
二进制数+0001的8位移码是____1000 0001____。
试题25
对于机器码10000011,若它是补码,对应的二进制数真值是____-1111101___。
试题26
对于机器码10000001,若它是补码,对应的二进制数真值是___-1111111_____。
试题27
对于机器码00001111,若它是补码,对应的二进制数真值是___+1111_____。