西门子

您所在的位置:网站首页 字符串最大字符是什么 西门子

西门子

2024-06-25 07:55| 来源: 网络整理| 查看: 265

西门子——不同数据的存储方式(String) 前言一、String(字符串类型)1.结构分析2.声明变量 二、WString(字符串类型——中文)1.结构分析2.声明变量3.举例说明 参考资料

前言

研究通讯时,小问题派生的支线,首次记录String数据类型,后续有时间的再慢慢扩充其他类型。

一、String(字符串类型) 1.结构分析

在西门子S7-300、400、1200、1500系列中,字符串(string)其实是以字符(char)数组的形式表示,最大可分配的空间为256字节。 来看一下结构图示: 在这里插入图片描述 由图片可以看出,第一二字节记录了分配长度以及有效长度,因此用于数据存储的长度就只有254个字节,故字符串类型最大长度不能超过254。

2.声明变量

在变量声明区声明如下: 在这里插入图片描述

1):默认长度(254),实际偏移256(256 - 0 总共占256字节) 2):设置长度(10) ,实际偏移12 (268 - 256 总共占12字节)

二、WString(字符串类型——中文) 1.结构分析

在西门子S7-300、400、1200、1500系列中,字符串(Wstring)其实是以宽字符(wchar)数组的形式表示,最大可分配的空间为256个wchar,256 * 2个字节。 wchar是用两个char以UTF16编码表示。 关于字符编码的对于转换请看 来看一下结构图示: 在这里插入图片描述

由图片可以看出,Wstring是一个宽字符数组(Wchar[]),以两个char组成一个wchar合并记录字符。与string类型相似,第一个wchar记录最大字符数(wchar的个数,不是char的个数),第二个wchar记录实际的字符个数(wchar的个数,不是char的个数),往后就是每个wchar代表着字符对于的UTF16编码。

2.声明变量

在变量声明区声明如下: 在这里插入图片描述

1):默认长度(254 个 wchar),实际偏移254 * 2 + 2 * 2= 512(794 - 282 = 512 总共占512字节) 2):设置长度(10 个 wchar) ,实际偏移10 * 2 + 2 * 2 = 24 (818 - 794 = 24 总共占24字节)

3.举例说明

设置如下图: 在这里插入图片描述 wstring输入“哇哈” 字符串,拆分一下:

最大长度实际长度哇哈实际值2542Unicode码:0x54C7Unicode码:0x54C8双Char表示0x00 0xFE0x00 0x020x54 0xC70x54 0xC8

又因为西门子内存存储是大端表示所以数据高位存在低内存中(图中可见:数据254(0x00 0xFE)0x00就是数据高位,地址DBB282就是低内存;0xFE就是数据低位地址DBB283就是高内存)

参考资料

1.http://www.founderchip.com/?id=335



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3