社区
C语言
帖子详情
如何把一个char*中的数据截取出来放到int中
tianlangfeixing
2010-10-29 04:05:39
如:
00 00 00 00 18 00 00 00 08 这9个字节分别从2到5 截取出来放到一个int中,等于24(18转换过来十进制)
从6至9放到另一个int中,变成8
memcpy可以吗??
...全文
219
10
打赏
收藏
如何把一个char*中的数据截取出来放到int中
如: 00 00 00 00 18 00 00 00 08 这9个字节分别从2到5 截取出来放到一个int中,等于24(18转换过来十进制) 从6至9放到另一个int中,变成8 memcpy可以吗??
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luciferisnotsatan
2010-10-29
打赏
举报
回复
[Quote=引用 7 楼 tianlangfeixing 的回复:]
引用 4 楼 hustleverpi 的回复:
char* p = 你的字符数组。
int i;
memcpy(&i, p + 2, 3);
就得到了你要的东西。
但是,如果你的char*是从网络中获取的,注意转换网络字节序
我的数据是从网络上获取的 怎么转换??
[/Quote]
大头小头问题。不过你这是字符串的话,应该没啥问题。
hustleverpi
2010-10-29
打赏
举报
回复
楼上的不要误人子弟哈~
函数htonl是本地字节序转网络字节序(long类型)
函数ntohl是网络字节转本地直接(long类型)
同理还有htons, ntohs
很好记,h就是host,主机,n就是net,网络。
luciferisnotsatan
2010-10-29
打赏
举报
回复
atoi
tianlangfeixing
2010-10-29
打赏
举报
回复
[Quote=引用 4 楼 hustleverpi 的回复:]
char* p = 你的字符数组。
int i;
memcpy(&i, p + 2, 3);
就得到了你要的东西。
但是,如果你的char*是从网络中获取的,注意转换网络字节序
[/Quote]
我的数据是从网络上获取的 怎么转换??
huhacn
2010-10-29
打赏
举报
回复
char *pcData = "000000001800000008";
char *pcTemp = pcData;
char caArrary[10] = {0};
memcpy(caArrary, pcTemp+2, sizeof(char)*8);
int nTmp = atoi(caArrary);
printf("%d", nTmp);
getchar();
hustleverpi
2010-10-29
打赏
举报
回复
上面错了,
memcpy(&i, p + 1, 4);
hustleverpi
2010-10-29
打赏
举报
回复
char* p = 你的字符数组。
int i;
memcpy(&i, p + 2, 3);
就得到了你要的东西。
但是,如果你的char*是从网络中获取的,注意转换网络字节序
justkk
2010-10-29
打赏
举报
回复
哦,搞错了..
这样试试看
memcpy(&i, s+1, 4);
printf("%d\n", i);
tianlangfeixing
2010-10-29
打赏
举报
回复
[Quote=引用 1 楼 justkk 的回复:]
可以memcpy + atoi
[/Quote]
具体可以说说吗??
justkk
2010-10-29
打赏
举报
回复
可以memcpy + atoi
char
, unsigned
char
,
int
,unsigned
int
之间的相互转换
我有
一个
数据
是放在两个寄存器
中
的,
一个
表示高8位,
一个
表示低八位,我的这个
数据
是有符号的,那我在算出
数据
的时候就需要把两个寄存器的值进行合并了,这样就需要把
数据
从
char
转换到short类型了。 现在假定我有...
C/C++
中
char
*与w
char
_t*的几种转换方法
原创文章,转载请注明出处https://blog.csdn.net/aaron_lyn1985/article/details/80053910多字节(
char
*)和宽字符(w
char
_t*)之间的转换有几种方式,下面按照从通用到特殊的顺序逐一介绍。1.C库函数1.1 关键函数(1)...
C/C++
中
char
*与w
char
_t*的几种转换方法
多字节(
char
*)和宽字符(w
char
_t *)之间的转换有几种方式,下面按照从通用到特殊的顺序逐一介绍。 1、C库函数 1.1 关键函数 (1) setlocale() 功能:配置地域化信息 头文件:<locale.h> 函数原型: ...
程序员面试宝典
中
的
一个
错误
char
* b=(
char
*)&a
本文转自:... 1 #include 2 using namespace std; 3
int
main() ... 5 unsigned
int
a = 0xFFFFFFF7;... 6 unsigned
char
i = (unsign
类型转换——
int
转换成
char
(截短)
int
a,b; //keil c里的
int
,也就是16位。 a=0000; b=0x1234; a=(
char
)(b); ...
int
a,b;...这句的功能是操作系统为变量a,b分别分配一块空闲...这句的功能是把0000
放到
变量a所对应的存储空间,把0x1234
放到
变量b所对应的存储
C语言
70,020
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章