1.真值和机器数
真值:正、负号加某进制数绝对值的形式,即机器数所代表的实际值。如-1100
机器数:一个数值数据的机内编码,即符号和数值都数码化的数。常用的有原码和补码表示法。如11100.
2.定点数和浮点数的定义
在计算机中,小数点不用专门的器件表示,而是按照约定的方式标出。
小数点固定的称为定点表示,小数点不固定的叫做浮点表示。
在现代计算机中通常用定点补码整数表示整数,用定点原码小数表示浮点数的尾数部分,用移码表示浮点数的阶码部分。
2.1定点数及其编码表示
定点数根据小数点的位置可以分为纯小数和纯整数。
采用定点数的机器称为定点机。
数值部分的位数决定了定点机中数的表示范围。
当定点机处理的数不是纯小数或纯整数时,必须乘上一个比例因子,否则会“溢出”。
1.无符号整数的表示
常用无符号整数进行地址运算或者用它来表示指针。
2.有符号整数的表示
最高位用来表示符号位,而不表示数值位。
(1)定点整数和定点小数
1.原码表示法
用机器数的最高位表示数的符号
其他各位表示数的绝对值
纯小数的原码定义如下:
当是负数时,就相当于1.XXXXXX,1减去这个数就是原码,同理,1加上这个数的绝对值也是原码。
类似,纯整数的原码定义如下:
原码的性质:
1 有符号位和数的绝对值组成
2 简单直观,与真值的转换简单
3 0有正负0两个编码,即[+0]原=00000,[-0]原=10000
4 原码减价运算规则比较复杂,乘除运算规则简单。
2.补码表示法
纯整数的补码定义为:
我们可以发现,原码和补码的数值部分的绝对值的二进制码加在一起是2的整次幂。
补码的性质:
1 补码和其真值的关系:[x]补=符号位*2^(n+1)+x
2 0的编码唯一,因此整数补码比原码要多一个数,在四位的情况下,补码为1000表示-2^n
3 符号位参与补码的加减运算,统一采用加法操作实现
4.可以实现除法运算。
补码和真值的互相转化:
真转补:正数,与原码的转换方式一样;负数,符号位为1,其它位置由真值“取反+1”.
补转真:符号位为0,真值为正,跟原码的转换一样;若符号位为1,真值为负,其数值部分由补码“取反+1”得到。
变形补码:采用双符号位的补码表示法,定义为
3.反码表示法
很简单,在C语言当中已经写过了。直接截图过来把
4.移码表示法
移码表示法,其实就是用无符号数按照一个方向去一一对应有符号数。因此它非常容易进行比较操作。
移码的0的表示唯一
移码经常用于表示浮点数的阶码,它只能表示整数。
一个真值的移码和补码仅仅只有符号位不同,符号位取反即可互相转换。