我在这里问如何将4个字符转换为整数:stackoverflow链接
它正在工作,但现在我需要做同样的事情,但要相反。我想从一个整数中赚4个字符。因为在实践中我不完全了解移位和使用OR和AND运算符的原因,所以我尝试通过愚蠢的解决方案来解决我的问题,例如先将int转换为Hex String,然后转换为char等。有人可以在这里提供良好的解决方案吗?对不起我的英语不好。
我需要做同样的事情,但是要相反。我想从一个整数中赚4个字符。
只需反向进行操作即可。向右移动而不是向左移动,并在移动之后而不是在之前屏蔽:
char bytes[4];
long number = 0x00000190L; // int may be only 2 bytes on some implementations
for(int i = 0; i < 4; i++) {
bytes[i] = (number >> (8 * i)) & 0xFFL;
}
如果您打算获取一个十六进制字符串(如标题所示,但与链接的问题并非相反),那么最简单的方法是使用std::hex
和一个流。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句