我需要将所有数字都用一个十六进制数字并将它们“反转”:所有零变为非零(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/