Concatenate hex numbers in C

谁说胖子不能爱 提交于 2020-01-12 18:49:03

问题


I've been trying to concatenate 4 hex numbers and can't seem to do it.

Example:

int a = 0x01;
int b = 0x00;
int c = 0x20;
int d = 0xF1;
//Result should be 0x010020F1

The results that I am getting using sprintf and bitwise operations always cut off zeros, giving me answers like 1020F1, which is much different than what I want. Anybody have a better method?


回答1:


Supposing unsigned int a,b,c,d;

unsigned int result = (a<<24) | (b<<16)| (c<<8) | d;

But this is essentially implementation dependent since C++ standard only specifies minimal sizes of integers.

So for uint32_t a, b, c, d:

uint32_t result = (a<<24) | (b<<16)| (c<<8) | d;


来源:https://stackoverflow.com/questions/16208555/concatenate-hex-numbers-in-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!