关于C语言中有符号的整数值范围为什么是从

您所在的位置:网站首页 32768的二进制是多少 关于C语言中有符号的整数值范围为什么是从

关于C语言中有符号的整数值范围为什么是从

2024-07-02 23:30| 来源: 网络整理| 查看: 265

对于有符号整型,也就是int型,是和编译器的字长有关的,只有在16位编译器上,int类型占2个字节,其表示范围才是-32768~32767; 对于32位和64位编译器,int类型占4字节,表示范围为-2147483648~2147483647。以16位编译器为例,介绍其原理,对于32位和64位类似。int为有符号整型数,在16位编译器上占2字节16位。对于有符号数,计算机中表达时,最高位约定为符号位,当符号位为0时为正数,符号位为1时为负数。所以真正表达值的部分是剩余的15位,这15位的范围就是二进制的000 0000 0000 0000到111 1111 1111 1111。转换成十进制也就是0~32767。所以,正数的表示范围就是1~32767. 其中有一个特殊的值,就是0值,对于符号位1和0的时候,值都是0,用两个形式表示同一个数无疑是浪费的,符号位为1时的全0,就用来表达-32768了,这也是负数表示的范围比正数多1的原因。

综上,对于任意位的,无论是8位,16位,32位甚至64位的整数类型表示范围的计算公式为:如总位数为n位,那么有符号数的范围为-2^(n-1) ~ 2^(n-1)-1无符号数的表示范围为:0~2^n-1在这个公式中,^表示乘方。2^n就是2的n次幂。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3