实数的进位制与相互转化
进位制的概念
定义:进位制是一种计数方式,它规定了在某个数位上满一定数值后向高位进一。例如,我们常用的十进制,就是逢十进一。
基数:进位制的基数是指在这种计数制中,每个数位上可能用到的数码个数。如十进制的基数是10,用到的数码是0 - 9;二进制的基数是2,用到的数码是0和1。
常见进位制
二进制:
特点:逢二进一。在计算机科学中广泛应用,因为计算机的电子元件通常只有两种稳定状态,如开和关、高电平和低电平,可以方便地用0和1表示。
示例:二进制数\((1011)_2\),从右往左依次为:\(1\times2^0 + 1\times2^1+0\times2^2 + 1\times2^3=1 + 2+0 + 8=(11)_{10}\)。
八进制:
特点:逢八进一。它可以作为二进制和十进制之间转换的一种中间进制,因为\(2^3 = 8\),每三位二进制数可以方便地转换为一位八进制数。
示例:八进制数\((37)_8\),计算为\(7\times8^0+3\times8^1 = 7+24=(31)_{10}\)。
十进制:
特点:逢十进一。这是我们日常生活中最常用的计数制,人们已经习惯用0 - 9这十个数字来表示各种数量。
示例:十进制数\((456)\),可以表示为\(6\times10^0+5\times10^1 + 4\times10^2=6 + 50+400 = 456\)。
十六进制:
特点:逢十六进一。在计算机领域用于表示内存地址等信息。它用到的数码除了0 - 9外,还有\(A - F\),分别代表\(10 - 15\)。
示例:十六进制数\((2A)_ {16}\),计算为\(A\times16^0+2\times16^1 = 10\times1 + 2\times16=(42)_{10}\)。
相互转化方法
十进制转其他进制
整数部分:除基取余法。
例如将十进制数\((25)_{10}\)转换为二进制。用\(25\)除以\(2\),商为\(12\),余数为\(1\);再用\(12\)除以\(2\),商为\(6\),余数为\(0\);接着用\(6\)除以\(2\),商为\(3\),余数为\(0\);用\(3\)除以\(2\),商为\(1\),余数为\(1\);最后用\(1\)除以\(2\),商为\(0\),余数为\(1\)。从下往上将余数排列,得到\((11001)_2\)。
小数部分:乘基取整法。
例如将十进制小数\((0.625)_{10}\)转换为二进制。用\(0.625\times2 = 1.25\),取整数部分\(1\);再用\(0.25\times2 = 0.5\),取整数部分\(0\);接着用\(0.5\times2 = 1\),取整数部分\(1\)。得到\((0.101)_2\)。
其他进制转十进制:按权展开法。如前面所举的二进制数\((1011)_2\)、八进制数\((37)_8\)、十六进制数\((2A)_{16}\)转十进制的例子,就是将每个数位上的数字乘以该位的权(基数的幂次),然后相加得到十进制数。
二进制与八进制、十六进制的相互转换
二进制转八进制:从右往左,每三位二进制数一组,分别转换为八进制数。例如二进制数\((1101011)_2\),分组为\((001)(101)(011)\),转换后得到\((153)_8\)。
二进制转十六进制:从右往左,每四位二进制数一组,分别转换为十六进制数。例如二进制数\((1101011)_2\),分组为\((0110)(1011)\),转换后得到\((6B)_{16}\)。
八进制、十六进制转二进制:将八进制或十六进制的每一位数字分别转换为对应的二进制数。例如八进制数\((74)_8\),\(7\)转换为\((111)_2\),\(4\)转换为\((100)_2\),得到\((111100)_2\);十六进制数\((A3)_{16}\),\(A\)转换为\((1010)_2\),\(3\)转换为\((0011)_2\),得到\((10100011)_2\)。