首页 新闻 会员 周边

C++中,10进制的int 转为16进制的WORD类型

0
悬赏园豆:5 [已解决问题] 解决于 2021-10-28 14:43

C++中,10进制的int 转为16进制的WORD类型,怎么做的?

Linux平台

C++
echo_lovely的主页 echo_lovely | 小虾三级 | 园豆:1433
提问于:2021-10-14 10:32
< >
分享
最佳答案
0

1、多次 mod 16 ?
数组:[0,...9, a, ...f],16个
1 -> 0x1
11 -> 0xb
...
2、基于 二进制操作 ?

收获园豆:5
快乐的凡人721 | 老鸟四级 |园豆:3916 | 2021-10-14 10:37

标准库里没有相关的吗?我也想过用16自己转换

echo_lovely | 园豆:1433 (小虾三级) | 2021-10-14 10:44

@echo_lovely:
不懂C++,丢很久了,
更别说新版的 C++11、C++14 了

快乐的凡人721 | 园豆:3916 (老鸟四级) | 2021-10-14 11:04

@echo_lovely:
要相信自己的 编程实力 。JUST DO IT。

快乐的凡人721 | 园豆:3916 (老鸟四级) | 2021-10-14 11:05
其他回答(4)
0

用格式化输出就行吧, %x

jakio6 | 园豆:1318 (小虾三级) | 2021-10-14 19:11
0

printf的%x来输出十六进制

计算机知识杂谈 | 园豆:470 (菜鸟二级) | 2021-10-14 20:58
int a;
char hex[100];
sprintf(hex,"%x",a);

hex数据就是十六进制的内容了。

支持(0) 反对(0) 计算机知识杂谈 | 园豆:470 (菜鸟二级) | 2021-10-15 16:24
0

哦,用QString::setNum(数字,进制);

echo_lovely | 园豆:1433 (小虾三级) | 2021-10-28 14:43

进制好像只能2,8,10,16,64?

支持(0) 反对(0) echo_lovely | 园豆:1433 (小虾三级) | 2021-10-28 14:44
0

计算机没有10进制,16进制之分,只要是整型(int, unsigned int, long, unsigned long, etc.)都是2进制。10进制、16进制是解释给你看的。
0b0011(2进制) = 3(10进制)=0x3(16进制)。
WORD是2byte, 无符号整型,即unsigned short;
int是4byte,有符号整型。

不用任何特殊转换,只需要考虑数据是否溢出,符号是否一致。
int b = 10;
WORD a = b; // 成立

明明1109 | 园豆:213 (菜鸟二级) | 2021-11-11 10:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册