打印
[ZLG-MCU]

计算机中的数制与编码

[复制链接]
1613|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zlg2011|  楼主 | 2011-11-30 19:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.1.1 数制
    十进制我们在各种数学计算中所用的传统的数制,它用十个阿拉伯符号“0~9”来表示数字“零~九”,大于“九”的数就不能用一位来表示了,必须进位,如它用“10”来表示“十”,用“100”表示“一百”,因此它的进位特点是:逢十进一。
    二进制是计算机中所用的数制,它用两个阿拉伯符号“0和1”来表示数字“零和一”,大于“一”的数就不能用一位来表示了,必须进位,则它用“10”来表示“二”,用“100”表示“四”,因此它的进位特点是:逢二进一。
    十六进制用十个阿拉伯符号和六个英文字母“0~9,A~F”来表示数字“零~十五”,大于“十五”的数据必须进位,则用“10”表示“十六”,用“100”表示“二百五十六”,因此它的进位特点是:逢十六进一。   
    任意一个数都可以用以上三种数制中的任一种来表示,一般地说,无论采用任种数制,任何一个数都可表示为:
   
    在不同的数制中,式中基数“10”所表示的数值是不同的,在二进制中表示“二”;在十进制中表示“十”;在十六进制中表示“十六”。
    式中Ki为基数“10”的第i次幂的系数,在二进制中可以是“01”;在十进制中可以是“0~9”;在十六进制中可以是“0~9,A~F”。

1.1.2 数制之间的转换
    我们来规定一下以后的论述中数制的表示方法,用括号后的下标D、B和H分别表示十、二和十六进制数。例如(268)D表示十进制数;(1011001)B表示二进制数;(A8C7)H表示十六进制数。
    1.二进制转换为十进制
    可以先将二进制数按式2.1展开,然后将基数“10”换成十进制数“2”,再按十进制计算得到十进制数。
    例如
    2.十进制转换为二进制
    可以将十进制数分为整数和小数两个部分。将整数部分不断地除以2,把所得余数(只有01)按顺序从低(位0开始)到高位进行排列,直至商为0,所排列的余数即为所求二进制整数。例如(39)D转换为
   
    则(39)D=(100111)B。
    将十进制数的小数部分不断地乘以2,把所得乘积的整数部分(只有01)取出按顺序从高(位-1开始)到低位进行排列,直至误差满足要求。
    3.二进制和十六进制之间的转换   
    由于1624次幂,每4位二进制数对应1位十六进制数,因此它们之间的转换十分简单。将二进制整数部分从最低位开始每4位一组,不足4位的高位补0,然后将每组直接转换为十六进制即可
    例如 (11011011011010)B = (0011 0110 1101 1010)B = (36DA)H
    十六进制数向二进制数的转换也十分简单,只要将十六进制数的每一位直接转换为二进制数即可。
    例如 (A 6F3)H = (1010 0110 1111 0011)B,因此可以说十六进制是二进制的缩写形式。
    十六进制与十进制之间的转换可以参考二进制与十进制的转换。如十六进制转换为十进制,只要将“2”换成“16”,且将系数转换为十进制,再按十进制计算即可。
    例如

1.1.3 计算机的数据单位
    在计算机中,常用的数据单位有位、字节、半字和字,微处理器根据位数的不同支持8位字节、16位半字或32位字的数据类型。
    (1)位(bit):它是一个二进制数的位,位是是计算机数据的最小单位,一个位只有0和1 两种状态(21)。为了表示更多的信息,就必须将更多位组合起来使用,比如两位就有00、01、10、11四种状态(22),以此类推。
    (2)字节(Byte): 通常将8位二进制作为一个字节,即1B=8bit,那么一个字节就可以表示0-255种状态或一个字节或十六进制数的0-FF之间的数,8位微处理器的数据是以字节方式存储的。
    (3)半字:从偶数地址开始连续的2个字节构成一个半字,半字的数据类型为2个连续的字节,有些32位微处理器的数据是以半字方式存储的,比如32位ARM微处理器支持的Thumb指令的长度就刚好是一个半字。
    (4):以能被4整除的地址开始的连续的4个字节构成1个字,字的数据类型为4个连续的字节,32位微处理器的数据全部支持以字方式存储的格式,比如32位ARM微处理器支持的ARM指令的长度就刚好是一个字。

相关帖子

沙发
明天我还来| | 2011-12-31 22:29 | 只看该作者
谢谢楼主分享。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

41

帖子

1

粉丝