您好、欢迎来到现金彩票网!
当前位置:秒速快3 > 数据流语言 >

C语言中怎么把一堆int数据以16进制叠加到某个数据流的后面。

发布时间:2019-05-17 18:14 来源:未知 编辑:admin

  比如从buf读出来数据为4023ABFFD9,我要把110,70两个int型以16进制叠加到D9的后面,形成一个这样的数据流023ABFFD96E46。我把110,70两个数据转为字符串以%d%d的形式存在字符串ptr中...

  比如从buf读出来数据为40 23 AB FF D9,我要把110,70两个int型以16进制叠加到D9的后面,形成一个这样的数据流0 23 AB FF D9 6E 46。我把110,70两个数据转为字符串 以%d%d的形式存在字符串ptr中,然后用memcpy把它复制到buf读出来的数据后面,再改buf的长度,发现叠加到尾部的是110,70的ASCII码。问怎么样才能以16进制的形式叠到那个数据流的尾部呢?

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  但现在的情况是前面的buf里边的内容为GB2312的编码,当我把整形给加到尾部的时候它好像做了隐性的转换,把整形转换成ASCII码后才叠加上去。我要怎么样才能在叠加整形上去的时候不让它转换成ASCII码呢?这张图片就是我叠加上去的效果,FF D9后面的那几个数据是GB2312的编码,一堆0之后的,就是我叠加上去的整形数据,全都是以ASCII码叠加上去的。ASCII码16进制30表示0.

  不能用%x格式化,100%不是你要的结果,%x是4字节16进制整形,往里面写8个Char?只能强制转换了。节省了缓冲区大小并保证了结果正确。buf里边的内容为GB2312的编码,也就是说前面的那段内容是中文,当我把整形给加到中文尾部的时候它好像做了隐性的转换,把整形转换成ASCII码后才叠加上去。我要怎么样才能在叠加整形上去的时候不让它转换成ASCII码呢?

  在计算机内部,数据是部分10进制,16进制的。你直接把 110,70 拷贝到buf后面, 打印的时候用16进制打印就行了

http://istighcomputing.com/shujuliuyuyan/74.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有