数字系统转换中的数字系统基础也是学习PLC中极其重要的基础,它是必须掌握的内容,数字系统往往离不开记忆的寻址方式,S7-200Smart系列PLC中常用的数字系统有二进制数、十进制数、十六进制数,不同数字系统之间的数字可以相互转换, 一个数字也可以用这三个数字系统来表示;但是,在表示过程中,值的大小不会改变,但显示方式会改变。
下面就对各基础系统的转换进行说明,希望大家能够掌握其转换的原理。
为了方便学习二进制,我们先看一下十进制数的原理,十进制数的特点是有10个数字,分别是0-9,如图1-21所示,235中的个位数为5,代表5个1;十位数字是 3,代表三个 10;百位数字为2,代表2 100s;换句话说,它是 5 10 + 3 10 + 2 10,即 200 + 30 + 5 235。
二进制是一样的原理,十进制有10个数字代表一个数字,二进制有2个数字代表一个数字,它们是组成部分。 在十进制数中,您可以将 0 到 9 的不同数字放在不同的位权重上,以表示不同大小的数字在二进制数中,也可以将不同的数字放在不同的位权重中,得到不同大小的数字,比如1-22图中的二进制数1011,按照十进制数原理来计算,从右边开始从位数开始得到结果。 二进制数也可以乘以右边的数字和位权重,即 1 2 +1 2 +0 2 +2 2;即 1 1 + 1 2 + 0 4 + 1 8;最后是 1+2+0+8 11,结果是基数 1011 和基数 11。
在十进制 10 1 中,所以第一位数字表示个位数;10 10,所以第二位数字表示十;10 100,所以第三位数字表示百。 同样,在二进制中,2 是 1,因此第一位表示个位数;2 2,所以第二位数字表示两位数;2 4,所以第三位数字表示四位数字;2 8,所以第四位数字表示 8。
在弄清楚了二进制到十进制数的转换之后,我们再来看看八进制数到十进制数,原理是一样的,十进制数有10个数字代表一个数字,八进制数有8个数字代表一个数字,由0-7组成;它还对应于一比一的十进制数,八进制数 0-7 对应于同样为 0-7 的十进制数。 如图1-23所示,八进制数567到十进制数的转换是什么?根据二进制数转换为十进制数的方法,是7 8 + 6 8 + 5 8,即7 1 + 6 8 + 5 64,结果是7 + 48 + 320 375,最后八进制数为567 k375。
如图1-25所示的十六进制数由0-9和a-f(代表10到15)组成,如图1-24所示,将十六进制数2ae换算成十进制数,即14 16 +10 16 +2 16,即14 1+10 16+2 256,结果为14+160+512 686, 和最后一个十六进制数 2ae k686。
总结:通过上面将二进制、八进制和十六进制数转换为十进制数,可以总结出n位权重可以用来将n基数转换为十进制系统,展开后十进制数相加等于十进制数。
1.将整数转换为二进制
示例:将十进制 53 转换为二进制数。
方法1:除以n取余数,按相反顺序排列。
任何十进制数都可以用连续除法或短除法来计算,然后取余数,最后以相反的顺序排列余数也就是说,将十进制数转换为从 n 开始的数字,使用十进制数 n,然后取余数并按相反的顺序排列它们。
如图1-26所示,将十进制数53换算成十进制数,可以和53一起使用 2,如果得到的结果可整除,则余数为0,如果不可整除,余数为1,然后用结果继续除法,直到商的结果为0, 然后不再除法,最后得到的余数按相反的顺序排列,即为基数。
方法二:比特权重扩展法
根据要转换的数字,从要转换的数字中减去要转换的数字,然后减去差值,直到减去结果为0,最后用“1”表示可减去的权重,经顺序排列后得到二进制数,如图1-27所示。
2.将十进制数转换为二进制数
示例:十进制 20025 到二进制数。
整数部分如上列所示,小数部分乘以 2 四舍五入。
0.25×2=0.5 整数部分为0
0.5×2=1.0 整数部分为 1
当小数部分为0时,计算完成,如果小数部分仍然存在,则可以采用近似相等的方法计算。
苏:20025=2#
05.将十进制数转换为八进制数。
示例:将十进制数 900 转换为八进制数。
根据除法n的余数,逆序方法可以将十进制除以8,并将所得商除以8,直到商等于0。 然后以相反的顺序排列得到的余数,结果是一个八进制数如图 1-28 所示。
例如,将十进制数 2717 转换为八进制数。 根据除以n的余数,逆序方法可以将十进制除以16,并将所得商除以16,直到商等于0。 然后将得到的余数以相反的顺序排列,结果是一个十六进制数;需要注意的是,如果余数大于 9,则必须用十六进制数 a-f 表示,如图 1-29 所示。
除了上面的“除n余数,倒序”的方法外,还可以先转换为二进制数,然后通过二进制系统将其转换为十六进制数,如何将二进制数转换为十六进制数可以在本小节的内容中看到二进制到十六进制数。
1. 二进制到八进制
从 2 8 开始,每 3 位二进制可以转换为一个八进制数;举个例子来说明这一点,例如,如果将二进制1011 1001转换为八进制数,则每三个数可以分成一组,从右边开始,乘以它们的位权重,然后将加权值相加,结果为八进制数,如图1-30所示。
2.二进制到十六进制数
从 2 16 开始,每 4 位二进制可以转换为一个十六进制数;例如,如果将二进制1011 1001转换为十六进制数,则可以将每四个数分成一组,从右边开始,乘以它们的位权重,然后将加权值相加,得到十六进制数的结果,如图1-32所示。
从 2 16 开始,每个 4 位二进制都可以转换为一位十六进制数,这意味着每个十六进制数都由一个 4 位二进制数(8 4 2 1)组成,因此可以使用四位二进制数来表示 1 位十六进制数、二进制数和十六进制数之间的关系, 如表1-6所示,转换时可按**中的对应关系进行转换。
十六进制转二进制时,每个十六进制为一个组,用四位数的二进制数表示,不足四位数用0组成,勾选对应表。