我試圖檢查並查看是否在unsigned int中設置了一位。我不知道我該如何做到這一點,但我認爲它會是這樣的。我試圖在C++的CDQ指令(但功能)C/C++檢查位31是否設置爲無符號int
這裏是我有什麼
unsigned int cdq(unsigned int eax)
{
unsigned int edx = 0;
if((eax >> 31) & 1) { edx = 0xFFFFFFFF; }
return edx
}
當我使用功能具有以下值:
CDQ(0×12345678)因此應該返回0(無符號整數)-1 cdq(0x01)位31沒有設置(0)米不知道爲什麼
0x12345678中的位31如何設置?最高位設爲第28位。 – syam
@juanchopanza「您需要'eax >> 30'」 - 錯誤。 –
如果「last」位爲0,那麼'eax&0x7FFFFFFF'爲0,否則爲!= 0。假設unsigned int至少有32位。然後注意在0x12345678位31沒有設置。 – ShinTakezou