数据类型长度

free1879 2008-06-15 01:22:41
我想问一下
比如usigned char 为 8bit 那么 应该是 0-256阿! 但是为什么是 0-255 呢?
比如int 为 16bit(depend on amchine,here thinking as 2 byte) 那么应该是-32768 ~ +32768阿! 为什么是 -32768 ~ +32767 呢?
少了的那个数呢?
我是新手 呵呵 :)
...全文
78 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
公子骏 2008-06-15
说错了,int是32bit
回复
k2eats 2008-06-15
你弄错了吧, unsigned char是8位
范围为: 00000000 - 11111111
8个1是十进制的多少? 是 2^8 - 1 =255!!!!
2字节int也是一样,除去符号位, 剩下31位, 最大是 2^31 - 1 = 32767
回复
公子骏 2008-06-15
还有int应该是4字节16bit
回复
weiyijiji 2008-06-15
[Quote=引用 2 楼 free1879 的回复:]
引用 1 楼 mySingleLive 的回复:
你没把0算进去

00000000
除去符号位 这是0对吧?
01111111
除去符号位 可这是256啊!
[/Quote]
都unsigned的了,还符号位?00000000到11111111一共2的8次方个数(256),0到255,且255
=11111111
回复
aomeng 2008-06-15
8bit 全部为1,是255

256 是 100000000 9位了。

你可以在windows 运行 calc (科学) 自己转换看一看。
回复
greatws 2008-06-15
01111111

这是127
回复
公子骏 2008-06-15
01111111 这应该是127吧
回复
buf1024 2008-06-15
[Quote=引用 2 楼 free1879 的回复:]
01111111
除去符号位 可这是256啊!
[/Quote]

256么?
回复
free1879 2008-06-15
[Quote=引用 1 楼 mySingleLive 的回复:]
你没把0算进去
[/Quote]
00000000
除去符号位 这是0对吧?
01111111
除去符号位 可这是256啊!
回复
公子骏 2008-06-15
你没把0算进去
回复
相关推荐
发帖
其他开发语言
创建于2007-08-27

3381

社区成员

其他开发语言 其他开发语言
申请成为版主
帖子事件
创建了帖子
2008-06-15 01:22
社区公告
暂无公告