C#进制--2进制、10进制、16进制(Modbus通讯部分)详解

引言:最近接触了一些通讯方面信息,写个小结记录一下,即时更新

1.二进制数:

是计算技术中经常采用的一种数制。二进制数据是由0和1两个基本数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。


2.十进制数:

是组成以10为进位单位基础的数字系统,是以0,1,2,3, 4, 5, 6, 7, 8, 9十个基本数字组成。十进制计数是由印度教教徒在1500年前发明的,由阿拉伯人传承至11世纪。


3.十六进制(简写为hex或下标16)

是一种基数为16的计数系统,是一种逢16进1的进位制。通常用数字0、1、2、3、4、5、6、7、8、9和字母A、B、C、D、E、F(a(10)、b(11)、c(12)、d(13)、e(14)、f(15))表示,其中:A~F表示10~15,这些称作十六进制数字。

4.补充关于Modbus中的16进制数据传输

0x06:表示的是一个8位(1byte-一个字节)的十六进制数,也就是二进制的00000110。

在C#中,0x前缀表示接下来的数字是十六进制表示。因此,0x06就是十进制数6的十六进制表示。

进制表示如下:

            data = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x04, 0x00, 0x48, 0x00, 0x06 };

            newclient.Send(data);

中的{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x04, 0x00, 0x48, 0x00, 0x06 }
转换为十进制表示为:
{ 0, 0, 0, 0, 0, 6, 1, 4, 0, 72, 0, 6 }
255:十六进制表示  0xff

0:    十六进制表示  0x00

:https://c.r在线转换工具1 在线计算器 | 菜鸟工具