西门子——不同数据的存储方式
西门子——不同数据的存储方式(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输入“哇哈” 字符串,拆分一下:
最大长度 | 实际长度 | 哇 | 哈 | |
---|---|---|---|---|
实际值 | 254 | 2 | Unicode码:0x54C7 | Unicode码:0x54C8 |
双Char表示 | 0x00 0xFE | 0x00 0x02 | 0x54 0xC7 | 0x54 0xC8 |
又因为西门子内存存储是大端表示所以数据高位存在低内存中(图中可见:数据254(0x00 0xFE)0x00就是数据高位,地址DBB282就是低内存;0xFE就是数据低位地址DBB283就是高内存)
参考资料
1.http://www.founderchip.com/?id=335
西门子——不同数据的存储方式相关推荐
- opengl中的Floatbuffer和IntBuffer与java中数据的存储方式不同的解决方法,编辑一个自己的BufferUtil工具类
opengl中的Floatbuffer和IntBuffer与java中数据的存储方式不同的解决方法,编辑一个自己的BufferUtil工具类 参考文章: (1)opengl中的Floatbuffer和 ...
- Matlab中数据的存储方式
简介 MATLAB提供了丰富的算法以及一个易于操作的语言,给算法研发工作者提供了很多便利.然而MATLAB在执行某些任务的时候,执行效率偏低,测试较大任务量时可能会引起较长时间的等待.未解决这个问题, ...
- Android数据的存储方式简介
作为一个完整的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File. ...
- 赶紧进来修内功--- 详细讲解在内存中数据的存储方式(整形篇)
本文详细介绍了所有整形家族类型的取值范围;整形数据在内存中的存储方式(大小端存储方式)以及对应的解析,介绍讲解判断当前机器的存储方式代码练习题,掌握后编程基础更进一步牢固!!! 数据的存储 一.整形数 ...
- 浏览器中数据的存储方式
cookie 解决问题 http 请求是无状态的,即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不知道当前请求是哪个用户. cookie 第一次登录后服务器返回一些数据(cookie)给 ...
- 【Java数据结构】计算机中数据的存储方式(为什么要使用B树)
多路查找树 计算机的存储 内存 硬盘 硬盘基本构成 硬盘存储的优缺点 磁盘的预读 二叉树与B树 二叉树读取数据 B树读取数据 计算机的存储 计算机中的存储大致可以分为内存与硬盘存储,硬盘还能继续分为机 ...
- Android中的5种数据存储方式
Android中的5种数据存储方式 Android中的5种数据存储方式 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用SharedPref ...
- 大数据有哪些存储方式?
大数据的火热,带来的是大数据相关技术的火热,大数据处理当中面临的第一道障碍就是关于大数据存储的问题.那么针对于大数据存储问题的解决,大数据的存储方式有哪些,在这些大数据存储方式上又该如何选择,下面我们 ...
- 浮点型数据存储方式浅析
学习目标: ① 搞懂float和double型数据的存储方式 ② 实现浮点型二进制和十进制的相互转换 ③ 了解float和double类型的取值范围及其精度的由来 浮点型作为Java基础数 ...
最新文章
- shell脚本修复MySQL主从同步
- LINQ的基本语法中八个关键字用法说明
- awk详细教程:第二部分
- 云炬金融每日一题20211012
- asp编程工具_使用ASP.NET Core构建RESTful API的技术指南
- Python打包分发工具setuptools简介
- 看了三张照片,这个AI只用20分钟破获六年“悬案”
- Could not find artifact
- wireshark 十六进制过滤_Wireshark过滤表达式大全
- Python面试题【315+道题】
- [转]香农信息论与毒药称球问题
- 群辉服务器根目录新建文件夹,群晖 synology NAS 存储创建存储空间的方法
- 云原生生态周报 Vol. 3 | Java 8 ❤️ Docker
- [C#]对Excel的操作
- 【远距离无线模块】WDS3及SI4338使用步骤及配置说明
- zblog include html页面,zblog模板开发第一课:zblog标签调用大全
- 【数据结构】之排序算法综合篇
- 财帮子,一个非常不错的投资理财社区
- 3行代码实现全平台多语言离线OCR文字识别,完全免费开源
- 服务器系统2012浏览器,关闭Windows 2012系统IE浏览器”增强的安全配置已启用”问题 | 老左笔记...
热门文章
- 利用 Pyecharts 制作饼图
- 融入动画技术的交互应用-雪花
- Java开发:哪些技能测试来评估Java开发人员的技能?
- 从第三方应用跳回uniapp开发的app
- 基于STM32-消防栓监测系统毕业设计---论文(附加最全面的从硬件电路设计->驱动程序设计->阿里云物联网搭建->安卓APP设计)
- android中检测网速,Android 流量与网速监测(悬浮窗) 源码
- redis crackit入侵事件总结
- Excel表格标题重复打印
- 能骗173万的诈骗电话可以做到多逼真?
- 11,你听说过vue过渡动画了嘛?没有吧? 众里寻他千百度,百度不一定全面?