2.1 机器数与真值 |
|
数据类型就是指数据信息(字符、数字、图元、声音、图像等)在计算中的存储形式,自1946年计算机问世以来,人们将社会中的各种信息,如图形、文字、数字、符号、音频、视频等以二进制的形式存储起来,以便计算机能够识别和处理。因此,需要建立一套“人”与“机”之间信息交换的格式规范,规定什么样的数据在计算机中以何种方式进行存储,于是产生了数据类型。对于人们熟悉的“数”来讲,例如,-100、0、25、1986等,人类可以阅读、记录和计算,但是,计算机无法识别。计算机自诞生以来,只认识它的父亲“1”和母亲“0”,其他的都不认识。因此,需要一套
格式规范,将人们熟悉的信息转换为计算机认识的0和1。那么,一个数字在计算机中的表示形式是不是唯一的呢?不是,它的表示形式包括原码、反码、补码和移码,在讲述这些内容之前,需要先了解机器数和真值两个概念。可参考二维码视频讲解。
(1)机器数 一个数转化为计算机能够识别的二进制数,称为这个数的机器数,即能够被计算机这种机器识别的数。机器数是带符号的,在计算机中用一个二进制数的最高位存放符号,正数为0,负数为1(可以理解为负号“-”竖起来表示)。例如,用一个字节,即8个位长表示一个整数,十进制中的数+3,转换成二进制就是0000 0011;如果是-3,就是1000 0011。这里的 0000 0011 和 1000 0011 就是机器数。
(2)真值 真值就是真正的值,一个数可以用二进制表示,也可以用八进制、十六进制表示,只要它的表现形式值能够还原成其本身值,就称为这个表现形式值为真值,即真正的值,没有产生歧义的值。对于计算机中的机器数,因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如,符号数1000 0111,其最高位1代表负,其真正数值是-7而不是形式值135(1000 0111转换成十进制等于135)。所以,区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。
例:0000 0010的真值=+000 0010=+2,1000 0101的真值=-000 0101=-5。