PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 35781|回复: 0

[西门子] 【小白必备】学PLC必须要理解的进制转换你都懂了吗?

[复制链接]
发表于 2024-8-9 09:37:21 | 显示全部楼层 |阅读模式
数制基础中的数制转换也是在学习PLC极为重要的一个基础,是必须要掌握的一个内容,数制往往与存储器的寻址方式分不开,在S7-200SMART系列PLC中常用的数制表示方式有二进制数、十进制数、十六进制数,不同数制之间的数可进行相互转换,一个数也可以使用这三种数制进行表示;但在表示的过程中,数值的大小不变,只是显示的方式发生了变化。

下面针对各个进制的转换进行讲解,希望大家能够掌握其转换原理。

01二进制数转十进制数

为了方便学习二进制,我们先来看十进制数的原理,十进制数的特点就是有10个数字组成,分别是0-9,如图1-21所示,235中的个位是5,代表5个1;十位是3,代表3个10;百位是2,代表2个100;换种方式表示就是5×10º+3×10¹+2×10²,就是200+30+5=235。

二进制也是一样的原理,在十进制中有10个数码来表示一个数字,那二进制则有2个数码来一个数字,分别是0、1组成。在十进制数中,可以把0-9不同的数码放在不同的位权上面表示不同大小的数;在二进制数中,同样可以把不同的数码放在不同的位权中得到不同大小的数,如1-22图中2进制数1011,根据10进制数原理来推算,从右边开始用数码×位权得到的就是结果。那二进制数也可以从右边开始用数码和位权相乘,那就是1×2º+1×2¹+0×2²+2×2³;也就是1×1+1×2+0×4+1×8;最后就是1+2+0+8=11,结果就是2进制数1011=10进制数11。

在十进制中10º=1,所以第一位表示个位;10¹=10,所以第二位表示十位;10²=100,所以第三位表示百位。类似的,在二进制中,2º=1,所以第一位表示个位;2¹=2,所以第二位表示二位;2²=4,所以第三位表示四位;2³=8,所以第四位表示八位。   



▲图1-21 10进制数的原理▲



▲图1-22 2进制数转10进制数▲

02八进制数转十进制数

清楚了二进制转换成十进制数之后,那再来看看八进制转十进制数,原理都是一样的,十进制数有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-23 8进制数转10进制数▲



▲图1-24 16进制数转10进制数▲

03十六进制数转十进制数

十六进制数如图1-25由0-9和A-F(表示十至十五)组成,如图1-24十六进制数2AE转换成十进制数,就是14×16º+10×16¹+2×16²,也就是14×1+10×16+2×256,结果是14+160+512=686,最后十六进制数2AE=K686。   



▲图1-25 8(16)进制数与10进制数对应关系▲

总结:通过上面二进制、八进制以及十六进制数转换成十进制数,可以概括为N进制转成十进制可采用N×位权,展开后相加则等于十进制数。

04十进制数转二进制数

1、整数转二进制

举例:十进制53转换成二进制数。

方法1 :除N取余,逆序排列。

任意十进制数均可采用连除法或短除法计算,然后取余数,最后将余数逆序排列;就是说十进制转换成N进制数,用十进制数÷N,然后取余数,逆序排列。

如图1-26所示中的十进制数53转换成2进制数,可以用53÷2,得到的结果如果被整除,余数则是0 ,若不能被整除,则余数为1 ,接着再用得到的结果继续相除,直到商的结果为0则不再相除,最后把得到的余数逆序排列则就是2进制数。



▲图1-26 10进制数转换2▲

方法2:位权展开法

根据所要转换的数进行按位展开,把所得的权值减去需要转换的数,再用差值进行相减,直到相减结果为0 ,最后在能够相减的权值上用“1”表示,顺序排列后得到2进制数,如图1-27所示。   



▲图1-27 位权展开法▲

2、小数转换二进制数

举例:十进制200.25转换成二进制数

整数部分如上列所示,小数部分乘以2取整进行计算。

0.25×2=0.5 整数部分为0

0.5×2=1.0   整数部分为1

当小数部分为0时,则计算完成,若小数部分一直存在则可使用约等于的方式计算。

所以:200.25=2#11001000.01

05十进制数转八进制数

举例:十进制数900转换成八进制数

根据除N取余,逆序排列的方法可以把10进制除以8,得到的商再除以8,一直到商等于0为止。把得到的余数之后进行逆序排列,其结果就是八进制数;如图1-28所示。



▲图1-28:10进制数转8进制数▲

06十进制数转十六进制数

举例:十进制数2717转换成八进制数。根据除N取余,逆序排列的方法可以把10进制除以16,得到的商再除以16,一直到商等于0为止。得到的余数之后进行逆序排列,其结果就是十六进制数;需要注意的是得到的余数若大于9则必须用十六进制数A-F表示,换算过程如图1-29所示。   



▲图1-29 10进制转16进制▲

除了以上“除N取余,逆序排列”的方法之外,还可以先转换成二进制数,再通过2进制转换成十六进制数,而二进制数如何转换十六进制可看本小节内容之二进制转十六进制数。

07二进制|八进制|十六进制相互转换

1、二进制转八进制

由于2³=8,所以每3位二进制可以转换为一位八进制数;通过一个例子来进行加以说明,例如二进制1011 1001转换成八进制数,可把每三个数分为一组,从右边开始,分别乘以其位权,再加权值相加,得到的结果则是八进制数,换算过程如图1-30所示。



▲图1-30 进制数转8进制数▲

2、二进制转十六进制数

由于2⁴=16,所以每4位二进制可以转换为一位十六进制数;例如二进制1011 1001转换成十六进制数,可把每四个数分为一组,从右边开始,分别乘以其位权,再加权值相加,得到的结果则是十六进制数,换算过程如图1-32所示。



▲图1-32 2进制数转16进制数▲

08十六进制数转二进制数

由于2⁴=16,所以每4位二进制可以转换为一位十六进制数,那就说明每一位16进制数是有4位2进制数组成(8 4 2 1)因此可以使用四位二进制数来进行表是示1位16进制数,二进制数与十六进制数之间的关系,如表1-6所示,在换算时可根据表格中的对应进行换算。

十六进制转二进制时,每一位十六进制为一组,用四位二进制的数字来表示,不足四位的用0补足,查对应关系表。



▲表1-6:2进制与16进制数对应关系▲


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-9-10 20:28 , Processed in 0.044133 second(s), 27 queries .

快速回复 返回顶部 返回列表