一文搞懂PLC的进制转换
01什么是进位计数制
数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。按进位的原则进行计数的方法,称为进位计数制。比如,在十进位计数制中,是按照“逢十进一”的原则进行计数的。
1、十进制(Decimal notation),有10个基数:0 ~~ 9 ,逢十进一;
2、二进制(Binary notation),有2 个基数:0 ~~ 1 ,逢二进一;
3、八进制(Octal notation),有8个基数:0 ~~ 7 ,逢八进一;
4、十六进制数(Hexdecimal notation),有16个基数:0 ~~ 9,A,B,C,D,E,F (A=10,B=11,C=12,D=13,E=14,F=15) ,逢十六进一。
02进位计数制的基数与位权
"基数"和"位权"是进位计数制的两个要素。
1、基数:
所谓基数,就是进位计数制的每位数上可能有的数码的个数。例如,十进制数每位上的数码,有"0"、"1"、"3",…,"9"十个数码,所以基数为10。
2、位权:
所谓位权,是指一个数值的每一位上的数字的权值的大小。例如十进制数4567从低位到高位的位权分别为100、101、102、103。因为:
4567=4x103+5x 102+6x 101 +7x100
3、数的位权表示:
任何一种数制的数都可以表示成按位权展开的多项式之和。
比如:十进制数的435.05可表示为:
435.05=4x102+3x 101+5x100+0x10-1 +5x 10-2
位权表示法的特点是:每一项=某位上的数字X基数的若干幂次;而幂次的大小由该数字所在的位置决定。
03二进制数
计算机中为何采用二进制:二进制运算简单、电路简单可靠、逻辑性强。
1、定义:
按“逢二进一”的原则进行计数,称为二进制数,即每位上计满2 时 向高位进一。
2、特点:
每个数的数位上只能是0,1两个数字;二进制数中最大数字是1,最小数字是0;基数为2;
比如:10011010与00101011是两个二进制数。
3、二进制数的位权表示:
(1101.101)2=1x23+1x 22+0x 21+1x 20+1x2-1 +0x 2-2+1x2-3
4、二进制数的运算规则:
加法运算
① 0+0=0 ③ 1+1=10
② 0+1=1+0=1
乘法运算
① 0×0=0 ③ 1×1=1
② 0×1=1×0=0
04八进制数
1、定义:
按“逢八进一”的原则进行计数,称为八进制数,即每位上计满8时向高位进一。
2、特点:
每个数的数位上只能是0、1、2、3、4、5、6、7八个数字;八进制数中最大数字是7,最小数字是0;基数为8;
比如:(1347)8与(62435)8是两个八进制数。
3、八进制数的位权表示:
(107.13)8=1x 82+0x 81+7x 80+1x8-1 +3x 8-2
05十六进制数
1、定义:
按“逢十六进一”的原则进行计数,称为十六进制数,即每位上计满16时向高位进一。
2、特点:
每个数的数位上只能是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F十六个数码;十六进制数中最大数字是F,即15,最小数字是0;基数为16;
比如:(109)16与(2FDE)16是两个十六进制数。
3、十六进制数的位权表示:
(109.13)16=1x 162+0x161+9x 160+1x16-1 +3x 16-2
(2FDE)16=2x 163+15x 162+13x 161+14x 160
06常用计数制间的对应关系
二进制数、八进制数、十六进制数及十进制数是现代数字系统中常用的四种数制,这几种进位制计数制之间的对应关系如表1所列。
表1 常用计数制数的表示方法
数制间的转换
1、十进制数转换成非十进制数
(1)十进制整数转换成非十进制整数
①为什么要进行数制间的转换?
将数由一种数制转换成另一种数制称为数制间的转换。
因为日常生活中经常使用的是十进制数,而在计算机中采用的是二进制数。所以在使用计算机时就必须把输入的十进制数换算成计算机所能够接受的二进制数。计算机在运行结束后,再把二进制数换算成人们所习惯的十进制数输出。这两个换算过程完全由计算机自动完成。
②转换方法
十进制整数化为非十进制整数采用“余数法”,即除基数取余数。
把十进制整数逐次用任意十制数的基数去除,一直到商是0 为止,然后将所得到的余数由下而上排列即可。
②十进制小数转换成非十进制小数转换方法
十进制小数转换成非十进制小数采用“进位法”,即乘基数取整数。
把十进制小数不断的用其它进制的基数去乘,直到小数的当前值等于0或满足所要求的精度为止,最后所得到的积的整数部分由上而下排列即为所求。
2、非十进制数转换成十进制数
非十进制数转换成十制数采用“位权法”,即把各非十进制数按位权展开,然后求和。
3、二、八、十进制数之间转换
(1)二进制 数与八进制数之间的转换转换方法
①把二进制数转换为八进制数时,按“三位并一位”的方法进行。
以小数点为界,将整数部分从右向左每三位一组,最高位不足三位时,添0补足三位;小数部分从左向右,每三位一组,最低有效位不足三位时,添0补足三位。然后,将各组的三位二进制数按权展开后相加,得到一位八进制数。
②将八进制数转换成二进数时,采用“一位拆三位”的方法进行。
即 把八进制数每位上的数用相应的三位二进制数表示。
③二进制数与十六进制数之间的转换转换方法
a、把二进制数转换为十六进制数时,按“四位并一位”的方法进行。
以小数点为界,将整数部分从右向左每四位一组,最高位不足四位时,添0补足四位;小数部分从左向右,每四位一组最低有效位不足四位时,添0补足四位。然后,将各组的四位二进制数按权展开后相加,得到一位十六进制数。
b、将十六进制数转换成二进数时,采用“一位拆四位”的方法进行。
即 把十六进制数每位上的数用相应的四位二进制数表示。
PLC基础知识入门——进制转换(1),好方法,一学就会
PLC,是可编程逻辑控制器的简称,是工业控制的技术核心,学会PLC也是电工技能升级的必由之路。
我们学习PLC技术,首先需要掌握基础知识。下面我们先来学习进制转换。
一:常用进制
在这里只介绍常用的几种进制。
二进制:
数据的运算、存储都是采用二进制进行。用字母B表示,只有 0 和 1 两个符号,从0到1表示两种状态,0表示没有电或触点断开;1表示有电或开关接通,线圈得电吸合等。二进制是用来给机器(计算机,CPU等)识别和处理的。
十进制:
用字母D表示,有0、1、2、3、4、5、6、7、8、9 共10个符号,人们在实际生活中用到的数字就是十进制。但是机器识别不了,因此需要转换。
十六进制:
用字母H表示,有0、1、2、3、4、5、6、7、8、9 、A、B、C、D、E、F 共16个符号。二进制数据不便于书写和阅读,因此引入了十六进制,容易记忆。
八进制:
用字母O表示,有0、1、2、3、4、5、6、7共8个符号。在三菱PLC中有用到,西门子PLC中一般或很少采用。
常用进制对应表(部份)
二:十进制转二进制
十进制转二进制方法举例
1:二进制数就是2的几次方,从0开始,从右到左依次算出2的N次方的得数(大家认真看一下,其实是有规律的,也可以口算哦,哈哈)。见表第一第二行。
2:看一下有哪几个数加起来等于这个十进制数,从大到小开始看,并且在这几个数下面写上1,其它没有用到的数下面写上0就OK了。
对于十进制转二进制在其它地方可能会见到:除2取余法,如果数字较大,要除很多次2才能结束,比较麻烦,个人建议不采用。
除2取余法
二进制转十进制
二进制转十进制方法举例
其实就是将十进制转二进制的方法反过来。
从表的第三行从右到左开始对齐依次写出二进制数,然后将所有1对应的十进制数相加就OK了。
十进制和二进制互相转换学会了吗?
下节将讲解其它进制的转换。。。
相关问答
PLC编程中的进制数该如何表示?相互之间又是如何转换的?
PLC也是一台微电脑,许多功能指令离不开进制转换,同时也是为了增加程序的可读性,想要对PLC进行编程,那么必须得清楚数制的设置以及转化和对应的符号。当然,...PL...
plc进制是什么意思?
PLc的进制也就是数制。plc机翼的数制有PLc的PLc的10进制数,16进制数,2进制数。10进制数也就是日常生活中使...进制也就是进位制,是人们规定的一种进位方法...
三菱PLC里十六进制数转化为十进制数用什么指令?
在三菱PLC中,将十六进制数转化为十进制数可以使用MOV指令或者数值转换指令。以下是两种指令的使用方法:1.MOV指令MOV指令可以将十六进制数转换为十进制数,...
modbus协议怎样读取PLC双字16进制浮点数将其转化为十进制,急?
这与MODBUS无关,你的要求是把两个字的单精度浮点,转换成数,其实就是类型的转换而已,数本身不要转换。这C++语言最灵活,处理这种类型改变很简单:charbuf...
plc如何将二进制数转换为十进制数?
pcl二/十进制转换指令包括BCD数转换成二进制数指令BIN(23)/@BIN(23)、BINL(58)/@BINL(58),以及二进制数转换成BCD数指令BCD(24)/@BC...
欧姆龙plc里十六进制8714转换成十进制为什么会有两个结果的?
十六进制8714转换成十进制数是34580。用二进制16位可以表示为1000011100010100。但在PLC里16位十进制数范围是-32768~+32767。并且用最高位为1表示负数。....
三菱PLC里十六进制数转化为十进制数用什么指令?
d0d3就是它们的地址。你没必要知道它们的物理地址。除非你是搞plc开发的。一般的普通d寄存器的初使值是0。你可以给它们赋值。比如:movk2d2当程序进入运行时,...
三菱PLC里的十进制怎么转换成十六进制或者是三十二进制?
这和PLC的寄存器容量有关系。一般一个寄存器的容量就是16位的,32位就用两个寄存器。计算机里面都是用的2进制,所以一个16位的寄存器最多也只能存储的最大十进...
台达plc程序中怎么把十六进制数变成十进制数啊?
这个不管16进制还是十进制,对于PLC处理来说都是一样的你如果要显示出来,如在触摸屏上显示,只要编辑好你的数据显示器就行了这个不管16进制还是十进制,对于PL...
西门子plc中如何将16位二进制转换成十进制?
十进制和二进制在PLC地址中存放的数值一样,都是以二进制方式存储的,只是显示出的不同,所以直接输入十进制数就可以。SIMATICS7-200的应用领域从更换继电...