本文主要介绍在C编程语言中,16位整型数据的取值范围的相关知识。

1 无符号16位整型数据

对于无符号(unsigned)整型数据,存储单元中全部的位(bit)都用作存放数本身,而不包括符号。所以对于16位整型,取值范围如下:

0000 0000 0000 0000 - 1111 1111 1111 1111

对应的十进制数为0到65535(即,2^{16} - 1)。

所以,无符号16位整型数据的取值范围是0到65535。

说明:无符号整型变量只能存放不带符号的整数,如123、4567等,而不能存放负数。

2 有符号16位整型数据

对于有符号(signed)整型数据,存储单元中最高位代表符号位:0为正,1为负。

a)当最高位为0,即代表正数时,取值范围如下:

0000 0000 0000 0001 到 0111 1111 1111 1111

对应的十进制数为1到32767(即,2^{15} - 1)。

b)当最高位为1,即代表负数时,取值范围如下(以补码形式表示):

1000 0000 0000 0000 到 1111 1111 1111 1111

对应的十进制数为-32768(即,-2^{15})到-1。

所以,有符号16位整型数据的取值范围是-32768到32767。

说明:想要确认某一种数据的取值范围(或者其他类似的事情),最好的方法是编写测试程序,在机器上实际运行,然后通过分析运行结果得出结论,毕竟,实践出真知!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐