搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ int的取值范围是什么意思?
标题:
int的取值范围是什么意思?
只看楼主
jsjswban
等 级:
论坛游民
帖 子:26
专家分:59
注 册:2009-8-1
第
11
楼
得分:0
就相当于我说你是人 ·你只是一个人·
2009-08-02 21:53
wywy703
等 级:
论坛游民
帖 子:8
专家分:27
注 册:2009-8-3
第
12
楼
得分:0
不同的机器int表示的位数不一样,那16位来说,如果定义一个变量为int类型,当变量为负时,在最高位为1,该变量能取到的最小值为10000000000000B,该值就是-32768,当为正时,最大值为:0111111111111111,该值为32767。
2009-08-03 18:01
葡萄树
等 级:
论坛游民
帖 子:23
专家分:64
注 册:2009-8-3
第
13
楼
得分:0
int的取值范围-32768~32767到底是什么意思
定义一个int的变量,占用两个字节。
1byte = 8bit
每个bit代表一个0或者一个1
那么2byte就有16个0或者1
0000 0000 0000 0000
0000 0000 0000 0001
…………………………
…………………………
1111 1111 1111 1110
1111 1111 1111 1111
按照排列组合,一共就有2的16次方个不同的排列方法,
2的16次方=65536
然后一平均,给负数32768这么多个吧。
然后给正数32768这么多个吧,后来就发现了问题,怎么掉了个0?
于是就是-32768——0——32767之间了。
这样可以理解么?
2009-08-04 12:34
wdeast
等 级:
论坛游民
帖 子:14
专家分:74
注 册:2009-7-13
第
14
楼
得分:10
一般情况下 int 定义的是一个“字”,也就是 2 个“字节”的存储空间。
表示为 16 位二进制整数,
-32768(10进制)== 1000000000000000 (2进制)
32767(10进制) == 0111111111111111 (2进制)
最高位是符号位:1 为负 ,0 为正。
你再去看一下计算机中“数制”的东东吧,这样就明白了。
2009-08-04 16:25
rs369007
等 级:
论坛游民
帖 子:30
专家分:11
注 册:2009-2-25
第
15
楼
得分:0
int 占16位(一般的,有些是32位)首位为符号位,剩下15位 值在 (-2^15——2^15-1) 计算机内部采用补码表示具体的数据,会增加数的下界。
2009-08-04 22:53
rs369007
等 级:
论坛游民
帖 子:30
专家分:11
注 册:2009-2-25
第
16
楼
得分:0
int 占16位(一般的,有些是32位)首位为符号位,剩下15位 值在 (-2^15——2^15-1) 计算机内部采用补码表示具体的数据,会增加数的下界。
2009-08-04 22:54
陨落
等 级:
论坛游民
帖 子:36
专家分:16
注 册:2009-6-27
第
17
楼
得分:0
回复 13楼 葡萄树
你说的很好啊~
2009-08-06 19:34
xiaoyuer110
等 级:
论坛游民
帖 子:37
专家分:17
注 册:2009-7-29
第
18
楼
得分:0
呵呵!像这种题你应该朝下面看下去!例如!long float 这些你都应该提问出来!不然又不明白了!
除学者!不是败给程序不懂!而是编的时候不够心细!
2009-08-06 20:03
无名菜鸟
等 级:
新手上路
帖 子:1
专家分:0
注 册:2010-4-12
第
19
楼
得分:0
还是在论坛上逛能找到些有用的东西,老师讲的太枯燥了
2010-04-12 15:04
19
2/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-281273-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.836537 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved