原码[1]、反码和补码的概念1)概念________________________:是最简单的机器数表示法[2]。其数符位用0表示正,1表示负,其余各位表示真值本身。即用第一位表示符号, 其余位表示值,比如如果是8位二进制[3]:1的原码是________,—1的原码是________。________:正数的反码同原码,负数的反码为除符号位外,其它各位按位取反。正数的反码是其本身,负数的反码是在其原码的基础上,符号位不变,其余各个位取反1的反码是________,—1的反码是________。________:正数的补码同原码,负数的补码为反码加1。负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+11的补码是________,—1的补码是________。2)转换方法当真值为正数时,原码、反码、补码3种机器数的最高位均为0当真值为负数时,原码、反码、补码3种机器数的最高位均为1机器数的最高位为符号位,其它位称为数值位。当真值为正数时,原码=反码=补码;当真值为负数时,三种机器数的符号位相同,均为________,原码的数值位保持“原”样,反码的数值位是原码数值位的“________”,补码的数值位是原码的数值位的“按位取反”后再加________,简称“________________”。当真值为负数时:补码=反码+1当真值为负数时:原码= [补码]取补补码= [原码]取补[-x]补=模-[x]补[x]补=模-[-x]补比如8bit,模=28=1_0000_0000例如:(1)假设码长为8位,写出下列数的原码、反码和补码。根据本题可得到结论:0的原码、反码各有两种表示方法,而补码是唯一的全0表示。(2)假设码长为8位,写出原码、反码和补码所能表示定点整数和定点小数的范围。由此可见:n位的二进制数用原码表示,则可表示的数的个数为________________________个;n位的二进制数用反码表示,则可表示的数的个数为________________________________个;n位的二进制数用补码表示,则可表示的数的个数为________________个。比如:补码中用(-128)代替了(-0)编程中常用到的32位int类型,可以表示范围是: [-231~231-1] 因为第一位表示的是符号位.而使用补码表示时又可以多保存一个最小值-2G~2G-1
原码[1]、反码和补码的概念
1)概念
________________
________:是最简单的机器数表示法[2]。其数符位用0表示正,1表示负,其余各位表示真值本身。
即用第一位表示符号, 其余位表示值,比如如果是8位二进制[3]:
1的原码是________,
—1的原码是________。
________:正数的反码同原码,负数的反码为除符号位外,其它各位按位取反。
正数的反码是其本身,负数的反码是在其原码的基础上,符号位不变,其余各个位取反
1的反码是________,
—1的反码是________。
________:正数的补码同原码,负数的补码为反码加1。
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1
1的补码是________,
—1的补码是________。
2)转换方法
当真值为正数时,原码、反码、补码3种机器数的最高位均为0
当真值为负数时,原码、反码、补码3种机器数的最高位均为1
机器数的最高位为符号位,其它位称为数值位。
当真值为正数时,原码=反码=补码;
当真值为负数时,三种机器数的符号位相同,均为________,原码的数值位保持“原”样,反码的数值位是原码数值位的“________”,补码的数值位是原码的数值位的“按位取反”后再加________,简称“________________”。
当真值为负数时:补码=反码+1
当真值为负数时:原码= [补码]取补补码= [原码]取补
[-x]补=模-[x]补
[x]补=模-[-x]补比如8bit,模=28=1_0000_0000
例如:(1)假设码长为8位,写出下列数的原码、反码和补码。
根据本题可得到结论:0的原码、反码各有两种表示方法,而补码是唯一的全0表示。
(2)假设码长为8位,写出原码、反码和补码所能表示定点整数和定点小数的范围。
由此可见:n位的二进制数用原码表示,则可表示的数的个数为________________________个;n位的二进制数用反码表示,则可表示的数的个数为________________________________个;n位的二进制数用补码表示,则可表示的数的个数为________________个。
比如:补码中用(-128)代替了(-0)
编程中常用到的32位int类型,可以表示范围是: [-231~231-1] 因为第一位表示的是符号位.而使用补码表示时又可以多保存一个最小值-2G~2G-1
题目解答
答案
机器数: 有原码、反码和补码三种表示方法。 原码 00000001 10000001 反码 00000001 11111110 补码 00000001 11111110 1 按位取反 1 取反加 1 2 n -1 2 n - 1 2 n
解析
考查要点:本题主要考查原码、反码、补码的基本概念、转换方法及表示范围。
核心思路:
- 符号位与数值位:原码、反码、补码均用最高位表示符号(0为正,1为负),其余位表示数值。
- 正数处理:三种码形式相同,直接保留数值。
- 负数处理:
- 反码:符号位不变,数值位按位取反。
- 补码:反码基础上加1(即原码取反后加1)。
- 表示范围:原码和反码存在“+0”与“-0”,补码统一为全0表示0,且能多表示一个最小负数。
1)概念填空
原码
- 定义:符号位直接表示正负,数值位为真值本身。
- 示例:
- 8位二进制中,1的原码为
00000001,-1的原码为10000001。
- 8位二进制中,1的原码为
反码
- 定义:正数与原码相同;负数符号位不变,数值位取反。
- 示例:
- 1的反码为
00000001,-1的反码为11111110(原码10000001取反后去掉符号位)。
- 1的反码为
补码
- 定义:正数与原码相同;负数为反码加1。
- 示例:
- 1的补码为
00000001,-1的补码为11111110(反码11111110加1)。
- 1的补码为
2)转换方法填空
- 符号位:正数为0,负数为1。
- 负数处理:
- 原码数值位保持原样。
- 反码数值位按位取反。
- 补码数值位取反加1(即“取反加1”)。
- 表示范围:
- 原码/反码:可表示数为 $2^{n-1}-1$ 个正数和 $2^{n-1}-1$ 个负数,共 $2^{n}-2$ 个。
- 补码:可表示数为 $2^{n}$ 个(含唯一0,多一个最小负数)。