Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何附加到相邻的十六进制值,然后显示_C++_Hex - Fatal编程技术网

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;