



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、物联网应用技术专业教学资源库文档文档来源院校开发文档编号KC07010101-a22字符串类型与其它数据类型间的转换(微课脚本)无锡职业技术学院星期五, 一月 28, 2022字符串类型与其它数据类型间的转换序号台词1同学们,大家好。今天我们开始学习“学习模块一 基于WSN的环境监控系统设备编程与实施”,本堂课的内容是“字符串类型与其它数据类型间的转换”。2字符串类型的操作是应用开发中非常重要的一项技能,计算机应用中所有的输出、界面上显示的文字符号都是字符串数据类型。例如上位机通过串行线路读取温湿度节点信息的过程中,若把温度数据28作为字符串类型处理,其默认编码对应的十六进制是0x32 0x3
2、8 ,温度数据从节点串口发送时十六进制就是0x32 0x38,上位机接收后需把上述十六进制进行原始值复原,之后转换为字符串形式显示在界面上,在开发过程往往还须把传输过程的二进制进行字符串形式输出显示以方便调试,即把十六进制0x32 0x38作为字符串形式输出,所以熟练掌握字符串类型的操作非常有必要,对于字符串的转换操作主要包括与数字数据类型的转换以及二进制字符串的处理。3今天我们的介绍以任务形式进行,主要包括以下两个方面:任务说明、程序实现。4先来看一下任务说明5示例中涉及串行通信、操作、界面设计等太多内容,我们去除串行通信部分,简化界面就得到了今天的任务:利用c#实现字符串类型数据28的二进
3、制转换, 16进制字符串显示、16进制字符串还原对应数值并显示;分别对应传感器节点温度信息的发送,PC端二进制数据接收并以十六进制字符串显示,PC端十六进制字符串数值还原显示,不考虑节点温度串行传输及PC串口读取所涉及的数据转换包括byteàStringàbyte(原始值)àstring间的转换,其中第一个 byte表示PC串口读取的数据0x32 0x38,之后的string表示0x32 0x38的字符串显示“0x32 0x38”,第三个byte表示字符串“0x32 0x38”对应的原始十六进制0x32 0x38,之后采用string存储十六进制0x32 0x38
4、解码后的字符串“28”.6对PC端应用在接收显示温度信息的过程中数据转换进行整理得到在应用中共包括3个转换,分别是byteàString,stringàbyte ,byte à string,其中最后一个stringàdouble是在应用加入的字符串与数字数据类型之间的转换示例。在任务的整个过程中共涉及字符串、字节、整型、浮点型等四种类型,其中字符串与字节类型的转换较复杂分两类,一类是字符串与对应字符编码二进制的转换,这类操作可通过Encoding类选择相应编码格式进行编码、解码操作,一类是二进制字符串的转换,这类借助Convert类实现数据类型转换;字
5、符串与整型、浮点型的转换较为简单,可通过Convert类实现,也可用目标数据类型的parse的方法进行强转。7在字符串数据转换中主要涉及Convert类和Encoding类,其中Convert类实现基础数据类型之间相互转换,string、byte、int、double、float等都属于基础数据类型,转换使用ToXXX()方法,其中XXX表示目标数据类型,格式化输出使用PadLeft()和PadRight()方法,单个十六进制字符串转换成对应十六进制使用toByte()方法,单个十六进制换成对应十六进制字符串使用toString()方法;Encoding类实现字符编码,使用时须通过属性指定编码
6、格式,然后使用GetBytes()方法进行编码,使用GetString()方法进行解码;在开发中常常涉及字节数组与十六进制字符串间的转换,那如何实现呢,在下面的程序中,我们将借助StringBuilder、List<byte>实现实现彼此间的互转。8接下来使用Visual Studio 来进行任务的程序开发9(视频)新建项目后设计一个界面包括两个Lable、两个TextBox和一个Button控件,点击“转换”按钮后观察预设字节数组与字符串、十六进制字符串、数字类型之间的转换。“转换”按钮事件代码中预设了字节数组变量hex ,值为0x32,0x38 ,模拟PC端已获取串行数据,自定
7、义函数bytesToHexstring实现十六进制转换为对应的十六进制字符串形式,即0x32,0x38 ->"0x32,0x38",之后把字符串"0x32,0x38"显示在界面上,bytesToHexstring函数使用Convert类的ToString(byte,16) 方法实现单个十六进制与对应十六进制字符串的转换,PadLeft(2, '0')和PadRight(3, ' ')方法实现格式输出,使用循环方式对每个待转化十六进制进行转换并放入到StringBuilder变量sb中,最后把sb变量转换为string
8、类型返回,返回数据格式为0x32 0x38,数据之间以空格间隔;之后实现十六进制与对应十六进制字符串的逆转换,即"0x32,0x38"->0x32,0x38 的转换,这里须自定义函数hexstringTobytes实现,函数基本思路是使用split( )对十六进制字符串按空格分隔为字符串数组,之后循环取出每个字符使用Convert类的ToByte(string, 16)方法实现单个十六进制字符串与对应十六进制的转换并放入到List<byte>变量bytecontent中,最后把bytecontent变量转换为数组类型返回,返回数据格式为0x32,0x38
9、;对于返回的十六进制须使用Encoding.ASCII.GetString方法对其解码得到其对应的字符串“28”,最后使用Convert.ToDouble(“28”)方法来观察字符串与double类型之间的转换,下面设置断点并运行程序,点击“转换”按钮后,可以看到运行到断点处字节数组hexStr的值为0x32 0x38,double变量的double_value值为0.0,再按F5按钮继续运行程序,double_value的值变为了28.0,此时界面上正确显示了十六进制0x32,0x38 的字符串形式“0x32,0x38",同时也正确解码了十六进制字符串“0x32,0x38"对应的十六进制,得到了字符串”28“,最后也成功转换成28对应的double值2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年税务师考试指导试题及答案
- 环保公司创业计划书模板
- 养生保健师培训-海狗咔罗肽胶囊
- 志愿者突发公共卫生事件应急处理培训课程-PowerPointPresentation
- 2025二手车买卖合同书范文
- 退役军人创业支持政策全面启动
- 国内进口依赖最大的10种聚合物材料及进口替代进展
- 政治经济学测试题 (一)
- 确保宠物营养素全面性试题及答案
- 广东石油化工学院《工程力学二》2023-2024学年第二学期期末试卷
- ()地质填图方法详解
- 机电深化设计BIM应用工作流程
- 医院患者安全专项行动实施方案
- 2023年新桥医院岗前培训护理人员考核试题
- 建筑工程屋面及防水工程施工技术培训讲义
- 企业管理与领导力的战略与实践
- 宗亲会活动方案
- 测绘生产成本费用定额2022
- 阴道裂伤的健康宣教
- 某国企2023年度经营管理工作总结和2024年工作思路
- 大于号小于号等于号田字格描红
评论
0/150
提交评论