(1)知识点:原码,补码,反码知识点
原码 | 补码 | 反码 | |
正数(符号位=0) | 原码=补码=反码 | ||
(+122) | 0 1111 010 | 0 1111 010 | 0 1111 010 |
负数(符号位=1) | 原码-->反码--->补码(+1) | ||
(-122) | 1 0000 010 | 1 0000 110 | 1 0000 101 |
(2)知识点:有符号位与无符号位的转换(w为位数)
无符号位-->有符号位转换: | (1)对于(x <2^w-1),无符号位到有符号位保留数字的原值。 (2)对于(x>=2^w-1),无符号位到有符号位的转换为x减去2^w的值 |
有符号位-->无符号位转换: | (1)对于(x>=0)时,转换过程没有变化 (2)对于(x<0)时,转换结果为(x+2^w) |
(1)有符号位到无符号位的转换 |
#include<stdio.h>
int main()
{
int x=-1452738864;
unsigned int y;
print("x=%d y=%u",x,y);
}
(1)x = -1452738864 y = 2842228432 |