一,进位记数制与不同基数的数之间的转换
进位记数制是一种计数的方法,习惯上最常用的是十进制记数法,我们平时使用的整数都是十进制的。
计算机中为便于存储及计算的物理实现,采用了二进制数。二进制数的基数为2,只有0,1两个数码,并遵循逢2进1的规则,它的各位权是以2^k表示的。
计算机中存储信息的基本单位为一个二进制位(bit),它可以用来表示0和1两个数码。此外,由于计算机中常用的字符是采用由8位二进制数组成的一个字节(byte)来表示的,因此字节也成为计算机中存储信息的单位。一个字节由8位组成,它可以用两个四位组(又称半字节)来表示,所以为便于人们阅读及书写,经常使用十六进制数来表示二进制数。
计算机里,通常用数字后面跟一个英文字母来表示该数的数制。十进制数一般用D(decimal)、二进制数用B(binary)、八进制数用O(octal)、十六进制数用H(hexadecimal)来表示。
1)二进制转换为十进制:各位二进制数码乘以对应的权之和即为该二进制相对应的十制数。
2)十进制数转换为二进制数:1,降幂法 2,除法(注意小数部分的转换)
3)十六进制与二进制这间的转换:把二进制数从低位到高位每4位组成一组,直接用十六进制数来表示即可,反之,把十六进制数中的每一位用4位二进制数表示,就形成了相应的二进制数了。
4)十进制转换为十六进制:1,降幂法 2,除法(注意小数部分的转换)
5)十六进制转换为十进制:各位十六进制数与其对应的权值的乘积之和即为与此十六进制数相对应的十进制数。
二、计算机中数和字符的表示
在机器中,把一个数连同其符号在内数值化表示的数称为机器数。机器数可以用不同的码制来表示,常用的有原码、补码、反码表示法。我们这里只用补码表示法。
正数的补码表示:数的最高有效位为0表示符号为正,数的其余部分则表示数的绝对值。
负数的补码表示:负数X用2^n-|X|表示,其中n为机器的字长。简单方法:先写出与该负数相对尖的正数的补码表示(用符号-绝对值法),然后将其按位求反(即0变1,1变0),最后在末位加1,就可以得到该负数的补码表示了。
对于用补码表示的数,正数的符号扩展应该在前面补0,而负数的符号扩展则应该在前面补1。例如:我们已经知道如机器字长为8位,则+46的补码为00101110,-46的补码为11010010;如果把它们从8位扩展到16位,则+46的补码为:0000000000101110=002EH,而-46的补码为:1111111111010010=FFD2H