深入理解计算机之第三晚

2019-07-07  本文已影响0人  知道的太少
wallhaven-697458.png

总结一下:无符号数只能表示非负整数,它的编码就是将其转换成对应的二进制来表示即可。有符号数的编码方式有三种,分别是原码、反码和补码。正数的反码和补码与它的原码一样,绝大多数机器都是采用补码来表示有符号数。
对于大多数C语言实现,处理同样字长的有符号数和无符号之间转换的一般规则是:数值可能会变,但位模式不会变(底层的补码没变),如下:

int tx,ty;
unsigned ux,uy;
tx=ux;
uy=ty;

同时,无符号数的优先级要大于有符号数,如果无符号和有符号数进行比较和赋值,则均转化为无符号数,如下:

unsigned int i = 5;
int j = -10;

此时,i+j为unsigned int。

int a = 233;
char b = (char)a;
printf("%d",b);
上一篇 下一篇

猜你喜欢

热点阅读