社区
C++ 语言
帖子详情
16进制字符串
zejun_yao
2006-05-15 04:55:58
有4个字节的数组 char str[4] ={0x01,0x02,0x01,0x0a};
现在希望将这数组转为十进制的整型,该如何做?
我希望得到的结果是0x0102010a = 16908554
请教了!
...全文
1003
18
打赏
收藏
16进制字符串
有4个字节的数组 char str[4] ={0x01,0x02,0x01,0x0a}; 现在希望将这数组转为十进制的整型,该如何做? 我希望得到的结果是0x0102010a = 16908554 请教了!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zejun_yao
2006-05-16
打赏
举报
回复
thanks,over!!!
铖邑
2006-05-16
打赏
举报
回复
移动8个位,就是一个字节
aronzhou
2006-05-16
打赏
举报
回复
unsigned long num = 0;
for (int i = 0; i < 4; ++i) {
num = (num << 8) | str[i];
}
num的值就是了
————————————————————
num<<8 为什么是8?
铖邑
2006-05-16
打赏
举报
回复
char *str[4] ={0x00,0x00,0x00,0x01};
unsigned int x = *(unsigned int*)str;
0x1000000=====16777216
用unsigned int移位运算不会把符号带进来(可能又会引发下一个问题了,汗一个)
当然也可以用int,看需要了
zejun_yao
2006-05-16
打赏
举报
回复
char *str[4] ={0x00,0x00,0x00,0x01};
unsigned int x = *(unsigned int*)str;
我测试过x的值为16777216,为什么?
另外为什么要用unsigned int 而不能用int?
铖邑
2006-05-16
打赏
举报
回复
整数在内存里面表示为四个字节,所以你可以把四个字节的字符串转成整数
zejun_yao
2006-05-16
打赏
举报
回复
语法我了解,只是语义我不清楚,将str转为无符号整形的意义是什么?
铖邑
2006-05-16
打赏
举报
回复
unsigned int x = *( unsigned int* )str;
------------>
unsigned int *p = ( unsigned int* )str;
unsigned int x = *p;
zejun_yao
2006-05-16
打赏
举报
回复
请教各位了!
zejun_yao
2006-05-16
打赏
举报
回复
unsigned int x = *( unsigned int* )str;
这句代码的意思是什么啊?
铖邑
2006-05-16
打赏
举报
回复
整数的存储是自低向高的字节排列顺序,象楼主所说的0x0102010a,用字符串表示应该是:
char str[4] ={0x0a,0x01,0x02,0x01};所以……………………
zejun_yao
2006-05-16
打赏
举报
回复
具体解释一下,请教了
铖邑
2006-05-16
打赏
举报
回复
它这个顺序是倒过来的。跟楼主上面的那个做法不同
zejun_yao
2006-05-16
打赏
举报
回复
从网络上获取16进制的数据(以字符串形式表达),有段代码看不懂,请帮忙解释一下
char str[4] ={.....};
unsigned int x = *( unsigned int* )str;
unsigned int y = htonl( x );
然后y就是所得的16进制数的10进制结果。为什么啊?
sankt
2006-05-15
打赏
举报
回复
学习
dreamXren
2006-05-15
打赏
举报
回复
。。。。慢了1秒。。。。
dreamXren
2006-05-15
打赏
举报
回复
unsigned long num = 0;
for (int i = 0; i < 4; ++i) {
num = (num << 8) | str[i];
}
num的值就是了
铖邑
2006-05-15
打赏
举报
回复
int result = 0;
for(int i = 0; i < 4; i ++)
result = result << 8 | str[i];
C++实现中英文与UNICODE十六进制
字符串
互转
C++实现中英文与UNICODE十六进制
字符串
互转 实现 "中文English" --> "4e2d65870045006e0067006c006900730068" 和 "4e2d65870045006e0067006c006900730068" --> "中文English" 这么一个转换,上述的都是
字符串
。 附件是MFC编写的转换测试程序,及其源码。 源码在PC和WINCE下都测试通过
16进制
字符串
转成字节数组、字节数组转
16进制
字符串
、
16进制
字符串
转成2进制
字符串
、中英文
字符串
转
16进制
、
16进制
转换成中英文
字符串
16进制
字符串
转成字节数组、字节数组转
16进制
字符串
、
16进制
字符串
转成2进制
字符串
、中英文
字符串
转
16进制
、
16进制
转换成中英文
字符串
亲测可用。
java
16进制
字符串
转byte数组_Java中byte与
16进制
字符串
的互相转换
ava中byte用二进制表示占用8位,而我们知道
16进制
的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的
16进制
字符,即把byte的高4位和低4位分别转换成相应的
16进制
字符H和L,并组合起来得到byte转换到
16进制
字符串
的结果new String(H) + new String(L)。即byte用十六进制表示只占2...
长整数转化成
16进制
字符串
6-3 长整数转化成
16进制
字符串
(15 分) 本题要求实现一个将长整数转化成
16进制
字符串
的简单重点内容函数。 函数接口定义: void f( long int x, char *p ); 其中x是待转化的十进制长整数,p指向某个字符数组的首元素。函数f的功能是把转换所得的
16进制
字符串
写入p所指向的数组。
16进制
的A~F为大写字母。 裁判测试程序样例: #include &l...
16进制
字符串
转换成
16进制
数组
16进制
字符串
转换成
16进制
数组(初学者,留作记录,有问题欢迎评论指出) //
16进制
字符串
转
16进制
数组,初学,可能方法比较笨 //char s[] = "AA DD bb cc 55 11 22 33 44 1 2 3"; 测试
字符串
//uint16_t dat1[300]; 转换
16进制
后存储 //String_to_Hex(s, dat1, strlen(s)); 转换函数使用 void String_to_Hex(char* dats, uint16_t* datx,
C++ 语言
65,189
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章