第01章C语言程序设计预备知识详解.ppt
文本预览下载声明
1.3 机器数的表示形式及其表示范围 反码 对于这样的n位整数其反码表示的数的范围为: -(2n-1-1) ~ (2n-1 -1)。 N 0 ≤ N < 1 [N]反 = (2 -2-m)+ N -1 < N ≤ 0 100………0 n-1个0 011………1 n-1个1 对于定点小数,若小数部分的位数为m位,则定点小数反码一般表示为: 对于这样的m位小数(含一符号位)其反码表示数的范围为: -(1 - 2-(m-1)) ~ (1 -2-(m-1))。 语言程序设计教程 第二版 第一章 预备知识 C 1.3 机器数的表示形式及其表示范围 反码 1.00………0 m-1个0 0.11………1 m-1个1 总结: 正数N的反码[N]反与原码[N]原相同。 对于负数N,其反码[N]反的的符号为1,数值部分是将原码数值按位求反。 在反码表示中,有两种不同形式的0,即: [+0]反 = 000…0 或 0.00…0 [-0]反 = 111…1 或 1.11…1 语言程序设计教程 第二版 第一章 预备知识 C 1.3 机器数的表示形式及其表示范围 补码 补码又称为“对2的补数”。在补码表示法中,正数的补码表示同原码和反码的表示是相同的,而负数的补码表示却不同。对于负数的补码,其符号位为1,而数值位是将原码“按位求反,末位加1”。 例:N1 = +10011 N2 = -01010 [N1]补 = 010011 [N2]补= 110110 根据上述补码形成规则,一个n位的整数N(包含一位符号位)的补码一般表示为: N 0 ≤ N < 2n-1 [N]补 = 2n + N -2n-1 ≤ N < 0 注意:同原码、反码的区分!!! 语言程序设计教程 第二版 第一章 预备知识 C 1.3 机器数的表示形式及其表示范围 补码 对于这样的n位整数其补码表示的数的范围为: -2n-1 ~ (2n-1 -1)。 N 0 ≤ N < 1 [N]补 = 2 + N -1 ≤ N < 0 100………0 n-1个0 011………1 n-1个1 对于定点小数,补码一般表示为: 对于这样的m位小数(含一符号位)其补码表示数的范围为: -1 ~ (1 -2-(m-1)) 语言程序设计教程 第二版 第一章 预备知识 C 1.3 机器数的表示形式及其表示范围 补码 1.00………0 m-1个0 0.11………1 m-1个1 总结: 正数N的补码[N]补与原码[N]原和反码[N]反相同。 对于负数N,其补码[N]补的的符号为1,数值部分为反码数值加1。 在补码表示法中,0的表示形式是唯一的,即: [+0]补 = 000…0 或 0.00…0 [-0]补 = 000…0 或 0.00…0 注意:绝大多数机器数的表示采用补码表示法。象C语言中整数在计算机中就是以其补码的形式存储的。 语言程序设计教程 第二版 第一章 预备知识 C 原码 反码 补码 +700000111-711111000+000000000-011111111数的范围(-127~+127)(-127~+127)(-128~+127) (用一字节表示数) 负数补码转换成十进制数:最高位不动,其余位取反加1 例 补码 取反 加1-7 语言程序设计教程 第二版 第一章 预备知识 C
显示全部