我需要获取十六进制数中的所有数字并将它们“反转”:所有零变为非零 (F),所有非零变为零。
我试过:
void someFunction(DWORD hexVal)
{
//...
hexVal = ~hexVal;
//...
}
这将 0xE0000000 更改为 0x1FFFFFFF 而不是 0x0FFFFFFF。
我怎样才能产生想要的结果?
最佳答案
这应该会为您提供 2 个字节所需的结果。你得到 4 个字节的想法。
hexval = ((hexval & 0xf000) ? 0 : 0xf000) |
((hexval & 0xf00) ? 0 : 0xf00) |
((hexval & 0xf0) ? 0 : 0xf0) |
((hexval & 0xf) ? 0 : 0xf);
关于c++ - 反转十六进制值的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11529520/