首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

int的取值范围,该如何解决

2012-04-12 
int的取值范围有符号int的取值范围为-2^31到2^31-1,为什么呢?最大值为什么要减1呢?[解决办法]因为还有个 0

int的取值范围
有符号int的取值范围为-2^31到2^31-1,为什么呢?
最大值为什么要减1呢?


[解决办法]
因为还有个 0 需要表示.
[解决办法]
0111,1111,1111,1111你看应该是多少啊- -
[解决办法]
0

[解决办法]
因为默认是从0开始计算的啊。就像0、1、2、3······9是有10个数一样。如果是从1开始计算的话就不用减1了。
[解决办法]
一般int 4个字节 32位 除去1位符号位 2^31位 然后还有一个0要表示
[解决办法]
到limits.h头文件里找
#define INT_MIN (-2147483647 - 1) /* minimum (signed) int value */
#define INT_MAX 2147483647 /* maximum (signed) int value */

建议直接用这两个宏
[解决办法]
嘿嘿,回想起我们以前C语言考试了,不过TC的int貌似占2字节
[解决办法]
从0开始。。。
[解决办法]
4bit int的取值范围为-2^3到2^3-1,为什么呢?
最大值为什么要减1呢?
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 -8
1001 -7
1010 -6
1011 -5
1100 -4
1101 -3
1110 -2
1111 -1

[解决办法]
int 的正负号数的分界点 有一个 “0”
[解决办法]
最高位是符号位,不能算
[解决办法]

探讨
4bit int的取值范围为-2^3到2^3-1,为什么呢?
最大值为什么要减1呢?
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 -8
1001 -7
1010 -6
1011 -5
1100 -4
1101 -3
1110 -2
1111 -1

[解决办法]
这个问题自己可以哪计算机做几个测试就弄懂了。 我就是这么弄懂的。
32 位太长, 用 8 位举个例子吧!
0000 0000 代表 0;
0000 0001 代表 1;



0111 1111 代表 127;(是 8 位最大的值了)
1000 0000 代表 -128; (也就是 -2**7)
1000 0001 代表 -127;



1111 1111 代表 -1;
实际上就是 最高位的值码是 -2**7, 后面的都是正值码。 最高位 0 代表 0*(-2**7) + 后面正数; 最高位 1 代表 1 * (-2**7) + 后面正数。 32 位类似。
[解决办法]
探讨
请问各位为什么1000明明是8,为什么要添个负号呢??

[解决办法]
因为还有个0,0不算正负数。所以减一。新手帮你解答
[解决办法]
探讨
引用:
4bit int的取值范围为-2^3到2^3-1,为什么呢?
最大值为什么要减1呢?
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 -8
1001 -7
1010 -6
1011 -5
1100 -4
1101 -3
1110 -2
11……

[解决办法]
因为有符号的数在计算机里面是以补码的形式存放的,0只有一种表示方法
[解决办法]
探讨
因为有符号的数在计算机里面是以补码的形式存放的,0只有一种表示方法

[解决办法]
符号位站以为
------解决方案--------------------


正如有符号2位只能表示-2^1~2^1-1,即-2~1。剩下的一位是无论如何保存不了(10)2的

热点排行