社区
汇编语言
帖子详情
补码问题:为何取值范围负数比正数大1?
ScorpioZZR
2003-08-20 06:20:14
n位补码表示数的范围是: -2^(n-1)<=N<=2^(n-1)-1
比如16位的表数范围是:-32768~32767
为什么正数那里要减1?而不能是: -32768~32768这样呢?那个少掉的1用在哪里了?
...全文
851
4
打赏
收藏
补码问题:为何取值范围负数比正数大1?
n位补码表示数的范围是: -2^(n-1)<=N<=2^(n-1)-1 比如16位的表数范围是:-32768~32767 为什么正数那里要减1?而不能是: -32768~32768这样呢?那个少掉的1用在哪里了?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
W32API
2003-08-21
打赏
举报
回复
-32768~32768
那你的 0 要不要算一个数?
-32768~0~32767
原因看补码的定义
windows3000
2003-08-20
打赏
举报
回复
对于补码,表示负号的1兼有符号和数字的双重意义。
1000 0000,应是-128。
GhostAdz
2003-08-20
打赏
举报
回复
其实那是算出来的
正数最大比如8位的
那最大一定是01111111 是127对吧--------不可能再大了
负数开头一定是1对吧,所以最小的负数就是10000000
-128没错吧
8位范围就是-128--+127
人们为了平衡就把0做正数了
nicememory
2003-08-20
打赏
举报
回复
少掉的1...
负数有32768个,正数32767个,还有个0
原码、反码、
补码
知识总结
数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的原码了.因为在两个整数的加法运算中是没有
问题
的,于是就发现
问题
出现在带符号位的
负数
身上,对除符号位外的其余各位逐位取反就产生了...
java版2048源码下载-jvm:实战虚拟机
整数用
补码
表示,
正数
的
补码
是本身,
负数
的
补码
就是反码+1。反码就是符号位不变,其他位取反。
补码
的好处 0既不是
正数
也不是
负数
,反码不好表示,
补码
则相同。
补码
将加减法的做法完全统一,无需区分
正数
和
负数
...
为什么用
补码
表示
负数
, 为什么
负数
比
正数
多1?
(1)无符号16位的范围 0000 0000 0000 0000 到 1111 1111 1111 1111 无符号16位整型数据的
取值范围
是0到65535。 (2)有符号16位范围
正数
:0000 0000 0000 0001 到 0111 1111 1111 1111 十进制数为1到32767
负数
...
为什么16位int的
取值范围
是-32768~32767?
为什么int的
取值范围
负数
比
正数
多1? 这里记录一下答案。 基础知识: 因为
正数
在计算机中以原码的形式存在,
负数
在计算机中以
补码
的形式存在。
正数
:原码=反码=
补码
负数
:反码=原码除符号位之外的所有位取反 ...
java int的
取值范围
为什么
负数
比
正数
多1
java int的
取值范围
为什么
负数
比
正数
多1 1.int int的位数在不同的编译器中是不同的,但不会少于16位。 在16位编译器中,一个int是16位的,在32位的编译器中,一个int是32位的。 如果是16位的int,表示数的范围是-...
汇编语言
21,459
社区成员
41,601
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章