C语言有符号数与无符号数之间的转换

写在前面:

以下内容是我的愚见,如有不对,欢迎拍砖。

无符号数:不存在正负之分,所有位都用来表示数的本身。

有符号数:最高位用来表示数的正负,网站空间,最高位为1则表示负数,最高位为0则表示正数。

1.无符号数—>有符号数

看无符号数的最高位是否为1,如果不为1(为0),则有符号数就直接等于无符号数;如果无符号数的最高位为1,香港服务器,则将无符号数取补码,得到的数就是有符号数。

以unsigned char 和char为例子:

1.1将无符号数2转为有符号数

2的原码是:0000 0010,可知最高位不为1,免备案空间,因此转为有符号数之后也是2。

程序:

1 #include <stdio.h>main(void) 4 { 5unsigned char i = 2;,(char)i);;10 }近朱者赤,近墨者黑

C语言有符号数与无符号数之间的转换

相关文章:

你感兴趣的文章:

标签云: