当前位置: 首页 > news >正文

江苏省质量建设厅网站微信公众号运营

江苏省质量建设厅网站,微信公众号运营,网站建设文字内容,北京多用户商城网站建设Hex数据老大难 不少人都困扰于如何将电脑中读取到的string类型的数据变成整形发送出去。一半来说,不论你调用的通信方式是串口的还是网络的,亦或是PCIE的,其在电脑端的实际情况都是以系统API的形式呈现的。而系统API函数提供的接口&#xff…

Hex数据老大难

不少人都困扰于如何将电脑中读取到的string类型的数据变成整形发送出去。一半来说,不论你调用的通信方式是串口的还是网络的,亦或是PCIE的,其在电脑端的实际情况都是以系统API的形式呈现的。而系统API函数提供的接口,本质上只需要两类变量即可:

1.你的数据首位地址,一半来说就是一个char*变量;
2.你的数据总共长度。

比如,如果你使用ASCII编码,一串string发送的过程就是,你将这串string的首地址告诉API,再将string的长度告诉API,然后API根据这一串数据去读取地址控件中相应长度的数据。

一个地址char 变量内保存的数据是什么,是我们比较关心的。比如,如果你使用的是char * 表示的一串数据(string),那么根据string中的每一个字符元素对应的ASCII码,才是实际内存中char代表的内容。

所谓HEX,其实无意义,因为不论是什么样的数据或者编码,在内存里其实存的都是二进制,你按16位16位的取就可以了,API发送的也是直接内存里的二进制数据。重点始终在于,我们如何整理好我们在内存中的二进制数据。

%c与%d

让我们打开天窗说亮化吧,一个char对应的保存内容是什么,由下面这个东西可以解释:


char a = 97;//%c a %d 97char a = a;//报错char a = 'a';//%c a %d 97char a = "a";//报错char a = 'WIND';//%c D %d 68char a = '爱';//%c ? %d -46(这个后面专门再讨论)

也就是说,一个char的内存其很固定,一直都是一个8位宽字节,里面保存了一个整数,比如97。也就是说,实际API发送的东西就是%d的东西,一个char由一个8位宽字节表示,所以其范围为0到255(ASCII的总字符数少于255)。如果char a表示了一个不在ASCII里的字符,那么它一定是某个其他你暂时不知道的编码格式里的数字–文字对应表,你需要找到这样的对应表,比如UINCODE编码的本质就是一种数字–文字对应表,GBK也是。

这里我们展示三种实验:

#include<iostream>
int main() 
{char a = '爱';int len = sizeof(a);printf("c is :%c \nd is %d \nlen is %d \n",a,a,len);return 0;
}

在这里插入图片描述

#include<iostream>
int main() 
{int a = '爱';int len = sizeof(a);printf("c is :%c \nd is %d \nlen is %d \n",a,a,len);return 0;
}

在这里插入图片描述

#include<iostream>
int main() 
{long a = '爱';int len = sizeof(a);printf("c is :%c \nd is %d \nlen is %d \n",a,a,len);return 0;
}

在这里插入图片描述

我们在汉字字符集编码查询中找到如下结论:

在这里插入图片描述

可以发现,尽管你的输入是个汉字,但依然是以数字的方式与汉字对应的。你的char整形或者int整形,保存的事实上也是数字,是一串固定位宽的数据,所以你只要保证你的%d数据正确,天然的就是HEX,根本就不用特地的再转。

最后,援引一些我问大佬的结论:

'爱’这样的写法赋值,跟你所用的文本工具(比如cpp)打开后的编码方式直接相关。

如何%d的赋值

好了,现在我们考虑这样一个问题:

你有一个char a = ‘1’;

你如何把char b = 1;

赋值成这种形式?

#include<iostream>
int main() 
{char a = '1';int len = sizeof(a);char b = atoi(&a);printf("c is :%c \nd is %d \nlen is %d \n", b, b,len);return 0;
}

没错,用最简单的stoi或者atoi函数转换一下就可以了。

在这里插入图片描述

http://www.mmbaike.com/news/25670.html

相关文章:

  • b站怎么看视频分区谷歌seo关键词排名优化
  • 宿迁做网站多少钱竞价托管外包费用
  • 中国工信部网站备案百度旗下产品
  • 青岛模板网站建设价格济南优化网站的哪家好
  • 做网站英文编辑有前途吗品牌网络营销策划方案
  • 手机制作游戏软件宁波seo网络推广优质团队
  • dw网站怎么做点击图片放大域名注册信息查询
  • 李宁运动服网站建设规划书微信怎么做推广
  • 怎么做网站啊网站大全
  • 网站建设基本完成抖音seo排名系统哪个好用
  • 方案策划网站企业培训考试平台官网
  • wordpress product插件单页网站排名优化
  • dreamweaver网站模板软文推广平台排名
  • 短网址工具南昌seo代理商
  • 佛山微网站建设哪家专业站长工具综合查询ip
  • 新乡做网站公百度关键词seo排名
  • 常用企业客户资料网站电商营销策划方案范文
  • 做网站怎么插音频it培训班真的有用吗
  • 河南新乡做网站公司哪家好营销策略
  • 网站的风格保持一致如何提高网站排名的方法
  • 建设 大型电子商务网站沈阳seo按天计费
  • 深圳网站建设哪家好seo网站培训
  • 网站是怎么做的推广普通话活动方案
  • 做公司网站注意事项关键词搜索排名推广
  • 分销怎么做网站开发分销长沙seo网站管理
  • 设计师素材网站开发技能培训班有哪些课程
  • 网页设计师通常是设计两套ui吗快速网站seo效果
  • 网站的费用多少详情页设计
  • 网站建设步骤详解自动秒收录网
  • 做电脑图标的网站模板式自助建站