C++ 如何附加到相邻的十六进制值,然后显示
假设我有以下内容C++ 如何附加到相邻的十六进制值,然后显示,c++,hex,C++,Hex,假设我有以下内容 int main(){ int x = 0x02; int y = 0x72; //Figure out how to put 0x02 and 0x72 together to make 0x272. } 正如评论所说,我想弄清楚如何将十六进制值组合在一起。这不是简单的数字相加 上面的代码是一个更大项目的一部分,我想知道如何解决这个问题。比如: int main(){ int x = 0x02; int y = 0x72; int z =
int main(){
int x = 0x02;
int y = 0x72;
//Figure out how to put 0x02 and 0x72 together to make 0x272.
}
正如评论所说,我想弄清楚如何将十六进制值组合在一起。这不是简单的数字相加
上面的代码是一个更大项目的一部分,我想知道如何解决这个问题。比如:
int main(){
int x = 0x02;
int y = 0x72;
int z = x << 8 | y;
printf("0x%x\n", z);
z = y << 8 | x;
printf("0x%x\n", z);
}
?类似于:
int main(){
int x = 0x02;
int y = 0x72;
int z = x << 8 | y;
printf("0x%x\n", z);
z = y << 8 | x;
printf("0x%x\n", z);
}
是的,这是一个简单的加法问题,因为乘法是许多简单的加法。:-) 我建议使用乘法(并使用无符号整数):
此解决方案与平台无关,不依赖于端点。是的,这是一个简单的加法问题,因为乘法是许多简单的加法。:-) 我建议使用乘法(并使用无符号整数):
此解决方案与平台无关,不依赖于端部。因此,您希望生成一个整数值,高字节为
x
,低字节为y
?阅读有关按位移位和或运算符的内容。如果您想将数字倒过来,您希望答案是0x722还是0x7202?您的机器int大小是多少?8,16,32,64?@Ramsey嗯,有一个@MartinBonner使用移位操作是不正确的。它们对表示和尾数都是透明的。因此,您希望生成一个整数值,高字节为x
,低字节为y
?阅读有关按位移位和或运算符的内容。如果您想将数字倒过来,您希望答案是0x722还是0x7202?您的机器int大小是多少?8,16,32,64?@Ramsey嗯,有一个@MartinBonner使用移位操作是不正确的。这些是透明的代表性和持久性。
unsigned int x = 0x02;
unsigned int y = 0x72;
unsigned int combined = (x * 256) + y;
// Or the equivalent
unsigned int result = (x * 0x100) + y;