通常,把数值在计算机中的二进制表示形式称为机器数。
机器数有两个基本特点:
1
数的符号数值化。实用的数据有正数和负数,由于计算机内部硬件只能表示两种物理状态(用0和1表示),因此实用数据的正号“+”或负号“-”,在机器里就用一位二进制的0或1来区别。通常这个符号放在二进制数的最高位,称符号位,以0代表符号“+”,以1代表符号“-”。因为有符号占据一位,数的形式值就不等于真正的数值,带符号位的机器数对应的数值称为机器数的真值。 例如二进进制真值数-011011,它的机器 10110101。
2
二进制的位数受机器设备的限制。机器内部设备一次能表示的二进制位数叫机器的字长,一台机器的字长是固定的。字长8位叫一个字节(Byte),现在机器字长一般都是字节的整数倍,如字长8位、16位、32位、64位。
根据小数点位置固定与否,机器数又可以分为定点数和浮点数。 通常,使用定点数表示整数,而用浮点数表示实数。整理如下:
1
整数。认为整数没有小数部分,小数点固定在数的最右边。整数可以分为无符号整数和有符号整数两类。无符号整数的所有二进制位全部用来表示数值的大小;有符号整数用最高位表示数的正负号,而其他位表示数值的大小。例如十进制整数-65的计算机内表示可以是11000001。
2
实数。实数的浮点数表示方法是:把一个实数的范围和精度分别用阶码和尾数来表示。在计算机中,为了提高数据表示精度,必须唯一地表示小数点的位置,因此规定浮点数必须写成规范化的形式,即当尾数不为0时,其绝对值大于或者等于0.5且小于1(注:因为是二进制数,要求尾数的第1位必须是1).例如设机器字长为16位,尾数为8位,阶码为6位,则二进制实数-1101.010的机内表示为0000100111010100。