|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 求助:有符号、5bits 的存储范围?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
732
人关注过本帖
标题:
求助:有符号、5bits 的存储范围?
只看楼主
加入收藏
zb95
等 级:
新手上路
帖 子:87
专家分:0
注 册:2008-11-22
结帖率:
94.44%
楼主
收藏
已结贴
√
问题点数:20 回复次数:8
求助:有符号、5bits 的存储范围?
请问:有符号的5bits 可以存整数的范围是多少?
首先说明一下,这是在一个压缩文件中,需要用5bits的大小来存二进制数,我看说明里说,5bits的范围是-16到15。这里有点不懂。
正的就不说了,15是
0
1111
再说负的,5bit的最高位时符号位,则-16补码是
1
10000,这就6bit了,怎么回事?
[
本帖最后由 zb95 于 2011-2-25 09:15 编辑
]
搜索更多相关主题的帖子:
符号
二进制
压缩文件
2011-02-25 09:14
举报帖子
使用道具
赠送鲜花
godbless
等 级:
蝙蝠侠
威 望:
1
帖 子:216
专家分:950
注 册:2009-7-24
第
2
楼
收藏
得分:7
所有的数值都是以补码的形式来表示的,正数补码与原码相同,这个不提。
负数的补码方法是将该数绝对值的二进制形式按位取反再加1。
-16的绝对值为16,其二进制形式为 10000,按位取反为 01111,再加1为 10000 (这个就是-16的补码了),不是你说的 110000
2011-02-25 09:31
举报帖子
使用道具
赠送鲜花
zb95
等 级:
新手上路
帖 子:87
专家分:0
注 册:2008-11-22
第
3
楼
收藏
得分:0
回复 2楼 godbless
我-16换的对着呢,前面那个符号位我用红色1表示了,这个不说了。关键是-16的补码是6bits啊,而大小只能是5bits
2011-02-25 09:36
举报帖子
使用道具
赠送鲜花
zb95
等 级:
新手上路
帖 子:87
专家分:0
注 册:2008-11-22
第
4
楼
收藏
得分:0
回复 2楼 godbless
我在网上查的,说负数:符号位不变,然后该数绝对值的二进制形式按位取反再加1
2011-02-25 09:41
举报帖子
使用道具
赠送鲜花
godbless
等 级:
蝙蝠侠
威 望:
1
帖 子:216
专家分:950
注 册:2009-7-24
第
5
楼
收藏
得分:0
这样吧,反过来思考,那你说说5字节的时候 10000代表的数值是多少?
2011-02-25 09:45
举报帖子
使用道具
赠送鲜花
rjsp
等 级:
版主
威 望:
528
帖 子:9031
专家分:54061
注 册:2011-1-18
第
6
楼
收藏
得分:7
对于
10000
因为符合位为1,所以它是负数,换成正数就是
各位取反 01111,尾部加一 10000(十进制的16)
也就是 二进制的10000 是 十进制的-16
第二种证明方法:
5bits的整数可以表达 2的5次方,也就是32,个不同的数值
既然最大值为15,那么最小值就是 -(32-15-1),即 -16
再来看看你说的“则-16补码是 1 10000”,错误在于,符号位是固定的,还能自动移位呀?^_^
2011-02-25 09:47
举报帖子
使用道具
赠送鲜花
godbless
等 级:
蝙蝠侠
威 望:
1
帖 子:216
专家分:950
注 册:2009-7-24
第
7
楼
收藏
得分:0
大哥,2楼我是这么说的..
"再加1为 10000 (这个就是-16的补码了),不是你说的 110000"
另外,你的计算负数的方法是错误的。
我在网上查的,说负数:符号位不变,然后该数绝对值的二进制形式按位取反再加1
反过来是 先减1再按位取反。不是你说的取反了再减1
[
本帖最后由 godbless 于 2011-2-25 09:55 编辑
]
2011-02-25 09:52
举报帖子
使用道具
赠送鲜花
zb95
等 级:
新手上路
帖 子:87
专家分:0
注 册:2008-11-22
第
8
楼
收藏
得分:0
先谢谢各位了!我不是学计算机的,还有些不懂。。6楼大哥的第二种推法好像明白了一些。
但对于负数“符号位不变,其绝对值取反,加1”这句对不对?16是10000加上符号位(负)就是110000,取反101111,
加1,110000?我这样做错了?
2011-02-25 10:02
举报帖子
使用道具
赠送鲜花
点线面
来 自:NO.-1
等 级:
蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
第
9
楼
收藏
得分:7
换一种思维就是
-1 表示 1 1111
-2 表示 1 1110
-3 表示 1 1101
...
-15 表示 1 0001
-16 表示 1 0000
这上面看出什么规律,右边先不看是表示负数(看成没有符号),而左边看成绝对值形式,右边数值不断减小,左边不断增大。
结论就是,虽然这里不能表示为16,但是可以表示-16
小代码,大智慧
2011-02-25 10:03
举报帖子
使用道具
赠送鲜花
9
1/1页
1
快速回复:
求助:有符号、5bits 的存储范围?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.078425 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved