我正在尝试检查是否在无符号整数中设置了位。我不确定我怎么能做到这一点,但我认为它会是这样的。我正在尝试用 C++ 制作 cdq 指令(但是一个函数)
这是我所拥有的
unsigned int cdq(unsigned int eax)
{
unsigned int edx = 0;
if( (eax >> 31) & 1 ) { edx = 0xFFFFFFFF; }
return edx
}
当我使用具有以下值的函数时:
cdq(0x12345678) 第 31 位已设置 (1),因此应返回 (unsigned int)-1 cdq(0x01) 第 31 位未设置 (0),因此应返回 0
问题是它总是返回 0,我不知道为什么