二进制转换为其反码形式
t=(a^((int)pow(2,31)-1))+1;
for(i=0;i<32;i++)
b[i]=((int)pow(2,i)&t)>>i;
这段是将负数的二进制转换为其反码 并将其没bit保存到数组中 不过结果有点出入 请指教下
程序代码:#include <math.h>
int main(int argc, char *argv[])
{
int a = -125;
int t, i, tmp1;
int b[32] = {0};
tmp1 = ((int)pow(2, 31));
tmp1 -= 1;
t = a ^ tmp1;
t += 1;
for(i=0; i<31; i++) { //i < 31,ignore sign bit
tmp1 = (int)pow(2,i);
tmp1 &= t;
tmp1 = tmp1 >> i;
b[i] = tmp1;
}
return 0;
}改成这样你会不会设断点调了
