计算机组成原理——原码、反码和补码

机器字长:寄存器的位数(计算机的数均存放于寄存器中) 若机器字长为16位: 有符号数的范围为-2^15 — 2^(15) - 1 (注意:-2^15在原码中是无法表示的,但在计算机存储的补码形式可以表示) 无符号数的范围为0 — 2^(16) -1 用0表示正号,用1表示负号:-1100(真值) -> 11100(机器数)

原码 X = +1110时 [X]原 = 0,1110 X = -1110时 [X]原 = 1,1110 (逗号只是为了区分符号位实际不存在) X = 0.1101时 [X]原 = 0.1101 X = -0.1101时 [X]原 = 1,1110(注意不是10.1101,因为0并不是有效数据位) 若字长为n+1,原码整数的表示范围: 补码 对于纯整数: 对于纯小数: 原码、反码和补码的关系: 正数,原码=反码=补码 负数,原码符号位不变其他位取反为反码,反码+1为补码

例题: 已知某机器字长为8位(含一位符号位),令A = 15,B =24, 求A-B 分析:计算机中的运算我们一般采用补码运算 【A】补=00001111 【B】补=00110000 如果用[A]补-[B]补,显然减不了,这里我们可以根据一个基本公式 [A]补+ [B] 补= [A + B]补 [A]补 - [B]补 = [A]补 + [-B]补=[A-B]补

经验分享 程序员 微信小程序 职场和发展