>>本人在学习单片机时遇到许多关于底层的一些知识,而本课程意义非凡,因此制作此专栏便于了解自己的掌握程度,加深对微型计算机的了解。
表示数的方法:
表示一个数的方法有很多种,其实都是人为规定的。只是不同的方式运用于不同的场合。下面是常见的进制。需要熟练掌握之间的转换方法和其英文表示(本人在玩单片机的时候经常出现这些东西)。
二进制(Binary):在本课程中二进制的后面都要加B
八进制(Octal):在本课程中八进制的后O或者Q
十进制(Decimal):可以省略后缀
十六进制(Hexadecimal):在本课程中十六进制的后面都要加H(本人在单片机中编程所见加前缀 “0x”)
进制间的转换:
为什么要转换:个人理解,计算机能识别的只有0和1,也就是二进制数码,而十进制可能是我们生活中最常用的。所以相当于转换了应用场合,可以理解为翻译吧。
怎么转换:
二进制转为十进制:由位权概念可知:最低位位权为0后来依次加一,比如将二进制转为十进制:1001B=1*+0*
+0*
+1*
。
十进制转为二进制:方法--除二取余法。注意:最高位在底部。

十进制转换为其他的进制:方法同上述类似,除该进制取余数。
关于二进制转换为其他的进制: 对于进制的,可以用n个二进制数来表示该数。如将0101转换为四进制,这时我们可以用两位二进制来表示四进制,因此我们两个数两个数一看,先看低二位,转换为十进制1,对应四进制也是1,再看高两位,为1,对应四进制为1。由此直接写出转换后的四进制:11(四进制)。
数据单位
- 位:1bit
- 字节: 8bit
- 半字: 8bit
- 字: 16bit
- 字长:决定计算机一次可处理的二进制代码的位数。所谓64位机就是计算机一次能处理64位二进制数。
二进制编码
为什么要进行二进制编码:计算机只能识别二进制码,因此将信息进行二进制表示才能被计算机处理。
编码常见类型:
BCD码:BCD码由四位二进制来表示,也叫8421BCD码。
ASCLL码:(美国标准信息交换码)由7位代码表示128个字符。
备注:二者书上有详细解释,注意1.BCD码由四位二进制来表示,并且取前十个作为BCD码。ASCLL码,由7位代码表示128个字符。本人在单片机编程中,经常遇到数据类型的转换,要记住的就是0的ASCLL码是48,那么1的ASCLL码为48+1。
带符号数表示方法:
用最高位作为符号位,正数最高位为0,负数为1。
机器数:符号位+数值位。
机器数的表示方法:原码,反码,补码。
原码:最高位是符号位,0正1负。其余位为数值位。
反码:正数的反码是其原码,负数的反码是其除符号位的其他位按位取反。
补码:正数的补码就是其原码,负数的补码是其反码的数值为加一。
运算:当两个数均为正数时直接由其原码进行运算,当一正一负时转化为补码进行运算。两数均为负数时,原码符号位不变其他位直接进行运算。注意:补码运算过后的结果是补码需要进行转换才能得到真值。
补码运算的结果并不是其真实的值。将结果转换为反码在转换为原码即可。