前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >上位机开发必须了解的数据类型

上位机开发必须了解的数据类型

作者头像
科控物联
发布2023-09-01 08:08:36
3580
发布2023-09-01 08:08:36
举报
文章被收录于专栏:科控自动化

[通讯] 大端和小端的问题(Big endian and Little endian)

数据类型说明

数据类型是编程语言中非常重要的概念,其作用主要有以下几个方面:

  • 内存分配:不同的数据类型在内存中需要分配不同的空间。例如,整数通常需要占用 4 个字节的内存空间,而浮点数可能需要 8 个字节或更多的空间。因此,正确的数据类型可以确保内存使用效率和程序性能。
  • 数据处理:不同的数据类型可以支持不同的操作和运算。例如,整数可以进行加减乘除等算术运算,而字符串可以进行连接、分割等操作。正确的数据类型可以确保数据处理的正确性和有效性。
  • 输入输出:不同的数据类型需要不同的输入输出方式。例如,整数可以通过标准输入输出进行读写,正确的数据类型可以确保程序能够正确地读写数据。
  • 代码逻辑:不同的数据类型对应不同的含义和用途,因此在编写代码时需要选择正确的数据类型来反映代码逻辑和意图。例如,布尔型变量通常用于控制流程和逻辑判断,而整数和浮点数通常用于数学计算。

综上所述,正确选择和使用数据类型是编程中至关重要的一步,它直接关系到程序的正确性、性能和可维护性。

Tip:

编写程序需要理解数据的本质。例如,int 数据类型下的数字 1065353216 的数据本质是“00 00 80 3F”,而 float 数据类型下的数字 1 的数据本质也是“00 00 80 3F”。然而,当面对数据“00 00 80 3F”时,我们无法确定其代表什么含义。可能会认为 1065353216 太大,显然不对,必然是 float 类型的 1。但这是主观的人为判断,程序并不知道。因此,在解析数据时,必须使用正确的数据类型进行解析,否则会产生乱码。换言之,对于数据来说,应当使用与其原本类型相同的类型进行解析。

#关于数据排列问题

上述的数据表格里有例子,int 数据 100 的本质是 "64 00 00 00",而从我们的人的感官来说,应该是 "00 00 00 64" 比较合理。大部分人的习惯是高位在前,低位在后。但这只是一种规定,数据存储可以有多种排列,大体上分为三种:

  • 小端排列:典型的代表是 C# 语言,三菱 PLC。
  • 大端排列:典型的代表是西门子 PLC。
  • 其他不规则:典型的代表是 modbus 设备。

多种字节顺序,如下表所示:

#ENDIAN

字节顺序,适用于 int16/uint16/int32/uint32/float 数据类型,详细说明见下表。

符号

字节顺序

支持的数据类型

备注

#B

2,1

int16/uint16

#L

1,2

int16/uint16

默认字节顺序

#LL

1,2,3,4

int32/uint32/float

默认字节顺序

#LB

2,1,4,3

int32/uint32/float

#BB

3,4,1,2

int32/uint32/float

#BL

4,3,2,1

int32/uint32/float

#.LEN[H][L][D][E]

当数据类型为 STRING 类型时,.LEN 是必填项,表示字符串需要占用的字节长度,每个寄存器中包含H,L,D 和E 四种存储方式,如下列表格所示。

符号

说明

H

一个寄存器存储两个字节,高字节在前低字节在后。

L

一个寄存器存储两个字节,低字节在前高字节在后。

D

一个寄存器存储一个字节,且存储在低字节。

E

一个寄存器存储一个字节,且存储在高字节。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科控物联 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • [通讯] 大端和小端的问题(Big endian and Little endian)
  • 数据类型说明
    • #关于数据排列问题
      • #ENDIAN
      • #.LEN[H][L][D][E]
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档