数制基础
数制基础
本文的核心内容是向同学们介绍计算机的数制基础。学习本文将有助于你:
理解数制的基本概念,掌握进制之间的转换方法和技巧
理解计算机二进制编码的三种解释方式:原码、反码、补码


数制基础准备
本节的概念同学们只需要有一个感性的认识就可以,没有完全理解也不必纠结
数制也称为“计数制”,是用一组固定的符号和统一的规则来表示数值的方法。任何一个数制都包含两个基本要素:基数和位权

基数:数制所使用数码的个数
例如,十进制的基数是10,它的数码集合为{0, 1,2,3,4,5,6,7,8,9}
位权:数制中某一位上的1所表示数值的大小(所处位置的价值/权重)
例如,810975中的8所在位置的位权就是105,1所在位置的位权就是104,0所在位置的位权就是103,9所在位置的位权就是102,7所在位置的位权就是101,5所在位置的位权就是100
固定的符号:数制所使用的数码
例如,十进制数的数码集合为{0,1,2,3,4,5,6,7,8,9},这意味着十进制数字的字符串只能由这些符号构成【实际上这里可以使用离散数学集合论中字母表和语言来形式化定义,感兴趣的同学可以在学习完离散数学Ⅱ--集合论后再回过头来看这里的例子】
统一的规则:对数制的解释,对于一个数制来说,一旦基数和位权被定义好,就意味着由“数码“构成的符号串会被唯一地解释成一个数值
从十进制数示例出发,我们推广到 n 位的 b 进制数
,它的值可以定义为:

对于这样的b进制的数字(右下角的b代表这个字符串使用了b进制),我们不难看出:
b进制数的基数为 b
b进制数第 i 位的位权为 bi
现代计算机是基于二进制的数制进行工作的,信息在计算机中以二进制字符串的形式进行存储。
然而使用二进制的表示法比较冗长,这种对机器友好的表示方法人是很难看明白的。而人们熟悉的十进制与二进制之间的转换又比较麻烦,因此我们引入了十六进制数。我们熟悉的十进制数是由数字0~9组成,而十六进制数字则是由数字0~9和字母A~F来表示十六个可能的数值。
十六进制数是以0x开头,这个x可以是小写也可以是大写。十六进制数字中的字母部分可以全部是大写,也可以全部是小写,甚至大小写混合也是正确的。下面这个例子很好的展示了十六进制数字的多种写法。
