原码、反码、补码、移码,阶码如何表⽰?
举例:[+45]原=00101101      -45=10101101 (以下所有例⼦都为这两个数的变换)
原码:
原码表⽰法在数值前⾯增加了⼀位符号位(即最⾼位为符号位):正数该位为0,负数该位为1(0有两种表⽰:+0和-0),其余位表⽰数值的⼤⼩。
举例:[+45]原=00101101      [-45]原=10101101
反码:反码是数值存储的⼀种,但是由于补码更能有效表现数字在计算机中的形式,所以多数计算机⼀般都不采⽤反码表⽰数。
反码表⽰法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
举例:[+45]反=00101101      [-45]反=11010010
补码:在计算机系统中,数值⼀律⽤补码来表⽰和存储。原因在于,使⽤补码,可以将符号位和数值域统⼀处理;同时,加补码:
法和减法也可以统⼀处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
反码表⽰法规定:正数的补码与其原码相同;⼀种简单的⽅式,符号位保持1不变,数值位从右边数第⼀个1及其右边的0保持不变,左边按位取反。也可以从反码推补码,就是在反码的基础上加1。
举例:[+45]补=00101101      [-45]补=11010011
移码:
小数的原码
移码(⼜叫增码)是符号位取反的补码,⼀般⽤做浮点数的阶码,引⼊的⽬的是为了保证浮点数的机器零为全0。这个不分正负。
举例:[+45]移=10101101      [-45]移=01010011