C语言通过 “unsigned + 变量类型” 来定义一个自然数,直译作无符号数。
无符号字符型(unsigned char)
无符号字符型和字符型一样,都是8位二进制,只不过映射到十进制数的范围变成了 0~255 ,如果赋值了一个范围以外的数,则映射为 0~255 范围内模256的同余数。
比如下面的代码:
int main(void)
{
unsigned char ucZiFuXing ;
ucZiFuXing = 200 ;
printf("%d\r\n", ucZiFuXing);
}
运行结果是:
如果赋值为 -1,由于它不在 0~255的范围内:
当 时
所以下面这段代码:
int main(void)
{
unsigned char ucZiFuXing ;
ucZiFuXing = -1 ;
printf("%d\r\n", ucZiFuXing);
}
运行结果如下:
无符号短整型(unsigned short int)
无符号短整型和短整型一样,都是16位二进制,只不过映射到十进制数的范围变成了 0~65535 ,如果赋值了一个范围以外的数,则映射为 0~65535 范围内模65536的同余数。
比如下面的代码:
int main(void)
{
unsigned short usDuanZhengXing ;
usDuanZhengXing = -1 ;
printf("%d\r\n", usDuanZhengXing);
}
运行结果如下:
无符号整型(unsigned int)
无符号整型的长度和整型长度一样,废话不多说了。
无符号长整型(unsigned long int)
无符号长整型的长度和长整型长度一样,废话又不多说了。
无符号超长整形(unsigned long long int)
无符号超长整型的长度和超长整型长度一样,废话又双不多说了。