所谓“数制”,是指“数”的表示方法,即计数的方法。数制采用进位的方法,当数值增加到该位能表示的最大值时,会将位数增加一位(进位)。按照进位的规则进行计数的数制,称为进位数制。常见的进位数制有:二进制(Binary)、十进制(Decimal)和十六进制(Hexadecimal)。

人类的思维习惯于十进制(Decimal),所谓“逢十进一”。这个没什么好说的,地球人都知道。

本文要介绍的是PLC编程相关的概念,因此要重点介绍的是二进制(Binary)和十六进制(Hexadecimal)。

现代计算机普遍采用冯·诺伊曼(John von Neumann,1903~1957)的体系结构。美籍匈牙利科学家冯·诺伊曼根据电子元件的双稳特性,提出数字计算机应采用二进制进行存储和运算。

二进制(Binary)只有“0”和“1”两个数码,可以表示数字量的两种不同的状态,比如触点的吸合与断开,线圈的通电与断电等等。在PLC的存储单元中,可以使用一个“位(bit)”来表示“0”或者“1”两种值,8个“位”组成一个字节(Byte)。以西门子S7系列PLC为例,可以使用STL语句 “S  Q0.0”将Q0.0置为“1”。其中,“Q0.0”中的“Q”表示输出过程映像区(Output),第一个“0”表示第“0”个字节,第二个“0”表示该字节的第“0”位。当该指令执行后,PLC的输出模块的Q0.0将会有信号输出,它连接的继电器线圈会通电,常开触点吸合,接通相应的电路。

二进制采用“逢二进一”的规则,可以使用多位二进制数来表示数值。将最低位记为第0位,从右往左的第n位,其权值(数制中某位上的1所代表的数值)为2的n次方。

在西门子S7系列PLC中,二进制常数以“2#”开始,比如:2#1101。二进制数可以转换成十进制数,转换方法是把各个位上的数乘以其权值,然后相加。比如2#1101,等于1乘以2的3次方(=8),加上1乘以2的2次方(=4),加上1乘以2的0次方(=1),等于十进制13。

由于二进制数位数太多,编程时书写起来不太方便。为了简化书写,同时保持二进制宜于“位”操作的特性,人们把四个二进制位组成一组,用来表示一个数。由于四个二进制位所成表示的最大数是2#1111(=15),于是就出现了十六进制的数制。十六进制的数码除了包括十进制的0~9之外,还包括A~F六个字母。A等于十进制的10,依次递增,F等于10进制的15。

十六进制的表示方法比较多,在C/C++中用前缀"0x"表示,比如上一篇文章中提到的“0x0384”;在VB中使用前缀"&H"表示,比如“&H1A2B”;在西门子S7系列PLC中,使用“16#”来表示16进制数。但通常情况下,在表示16进制数的时候,需要同时指出它的数据类型(后续会有专门文章介绍数据类型相关知识),比如B#16#56表示16进制数56,它的数据类型是字节(Byte)。

十六进制数可以很方便的转换成二进制数,只需要把每一位数转成二进制数,然后组合起来即可。比如B#16#56,其中16#5=2#0101,16#6=2#0110,所以16#56=2#1010110,如下图:

程序设计中还用到一种编码,称为BCD码。BCD是英文"Binary-Coded Decimal"的缩写,这种编码的数制是十进制。BCD码使用四个二进制数来表示一位十进制数,每一位允许的范围是2#0000~2#1001,也就是十进制的0~9,采用“逢十进一”的规则。

BCD码是有符号的,用最高位来表示符号,“0”表示正数,“1”表示负数。对于一个四位的BCD码而言(16个二进制位),能表示的范围是“-999~+999”。为什么呢?其实比较好理解,你想,最高位是符号位,那么就剩下了三位,由于每一位BCD码,其本质是十进制数,所以每一位最大的数都是9,所以三位数最大就是999,加上符号,所以四位BCD码能表示的十进制数的范围是“-999~+999”。同样的道理,八位BCD码(32个二进制位)能表示的十进制数的范围是“-9999999~+9999999”。

好了,关于PLC编程需要的数制的知识就先聊到这里了。相关参考文章:

扫描关注微信公众号:

来源:本站|   大小:293 KB|   下载次数:751次

感谢您的支持,欢迎常来看看!

一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

计算机进制bcd啥意思,怎样理解二进制和十六进制及BCD码 | 北岛夜话相关推荐

  1. java怎么打印进制,java编程思维_007打印二进制,八进制,十六进制

    java编程思想_007打印二进制,八进制,十六进制 package wzs.test2; //打印二进制,八进制,十六进制 public class Test { public static voi ...

  2. 一文带你读懂计算机进制

    hi,大家好,我是开发者FTD.在我们的学习和工作中少不了与进制打交道,从出生开始上学,最早接触的就是十进制,当大家学习和使用计算机时候,我们又接触到了二进制.八进制以及十六进制.那么大家对进制的认识 ...

  3. 前端:HTML/04/html颜色表示,计算机进制,锚点链接,计算机编码(字符集)

    html颜色表示 网页中的颜色有三种表示方法: 颜色单词:red,green,blue,yellow- 十进制表示:rgb(255,0,0),rgb(0,255,0),rgb(0,0,255) 十六进 ...

  4. 怎么用计算机的计算器转换进位制,计算机进制换算(进制转换计算器)

    我想知道进制的转换方法, 8 16 10进制转换成2进制都是除2. 但其他进制之间. 进数转换:1.二进制数.十六进制数转换为十进制数(按权求和) 二进制数.十六进制数转换为十进制数的规律是相同的.把 ...

  5. 用程序员计算机算进制,一文带你读懂计算机进制

    hi,大家好,我是开发者FTD.在我们的学习和工作中少不了与进制打交道,从出生开始上学,最早接触的就是十进制,当大家学习和使用计算机时候,我们又接触到了二进制.八进制以及十六进制.那么大家对进制的认识 ...

  6. 计算机进制、内存模块详讲-入门必看(超详细)

    本文旨在让你掌握最基本的计算机进制及内存的知识,相信入门的朋友看完后大有帮助                                           因为部分排版原因电脑观看效果最佳 文中 ...

  7. 计算机进制换算方法 ppt,计算机基础数制及其相互转换.ppt

    <计算机基础数制及其相互转换.ppt>由会员分享,可在线阅读,更多相关<计算机基础数制及其相互转换.ppt(39页珍藏版)>请在人人文库网上搜索. 1.领域一 项目13 游戏二 ...

  8. 计算机进制转换(看完这一篇你就全懂了)—基础篇

    我相信很多人都学过进制的转换,但是总是转不过来,你只需要看完这一篇,你对进制的理解与转换一定会很熟练. 众所周知计算机只能识别0和1,其他的文字.数字.字符只能通过转换成进制,然后让计算机识别,并显示 ...

  9. 计算机进制转换专项训练,计算机进制转换练习题.doc

    <计算机进制转换练习题.doc>由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关<计算机进制转换练习题.doc>文档请在天天文库搜索. 1. {计算机进制 ...

最新文章

  1. boost:从0到1开发boost(linux、clion)
  2. 云炬WEB开发笔记3-1 项目初始化概要
  3. JavaScript一次性定时器的设置和取消
  4. C# 子类实例化基类 基类使用不了子类的方法_C#学习笔记11--接口/泛型
  5. 先装vs还是先装sql_【家装话题】装修师先装门还是先装地板?
  6. lisp语言画阿基米德线_中国油画艺术表达着艺术家思想情感,而且展现了油画语言独特之美...
  7. 模拟电路--可编程数字稳压电源的设计
  8. 必须掌握的Python技巧(一)
  9. hostingEnvironment与宿主环境
  10. jq中get()和eq()的区别
  11. linux下常见软件安装
  12. ipad上编译运行代码_是否可以在iPad上编写和运行PHP代码?
  13. win10安装免安装版的mysql5.7
  14. Squid 代理服务之反向代理服务器架构搭建
  15. Janus之自问自答
  16. Linux命令之统计文件字数、字符数、字节数及行数信息wc
  17. android 蓝牙传输到苹果手机,使用蓝牙文件交换将文件从Android传输到Mac | MOS86
  18. C++ 基础知识throw的用法
  19. python大学生社团管理系统django548
  20. MATLAB AppDesigner 中TextArea保留原有信息并换行显示提示信息

热门文章

  1. rand-C语言随机数范围
  2. JavaWeb~http请求常见方法/报头header字段Host、User-Agent、Cookie、Referer、Content-type/Http响应解析及状态码
  3. POI - 读取Excel2003、Excel2007或更高级的兼容性问题
  4. 如何将youtube转成mp3
  5. 从“苹果税”谈到DAO建设
  6. HIVE日期函数大全
  7. 希尔伯特曲线 java_Hilbert空间递归演示
  8. 河内之塔问题——《经典算法》
  9. 算法设计与优化编程 第十讲 Subway
  10. TCP/IP详解阅读笔记(一):TCP协议