程序员之旅——数据编码问题

ghosert 2001-07-21 11:33:58
各位老大好,本人去年通过了初程考试,今年暑假备考程序员。正在研读新版的水平考试程序员教程,遇到一些困难,想同步把问题拿出来问问各位老大。今天问问数据编码的问题。

该书第10页第2行,称因为二进制原码中的0 有 +0 ,-0之分。所以N位(包括符号位)二进制数可表示 2^N - 1 个原码,同理可表示 2^N 个补码,2^N - 1 个反码,请问怎么理解这句话?另外N=8时,-1 的定点小数的补码为:10000000。移码表示法中0为:10000000这两个值是怎么推出来的?好奇怪啊。
...全文
839 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
explorer007 2001-07-25
  • 打赏
  • 举报
回复
OK.
先问一下,原码和反码的编码规则你都知道吗?
其简单说来,就是原码:正值-》[正值]原码:值不变,符号位为零;
负值-》[负值]原码:值不变,符号位为一。
反码:正值-》[正值]反码:值不变,符号位为零;
负值-》[负值]反码:值求反,符号位为一。
这样看来,它们在符号位上的处理都是相同的,所以就是2^N - 1个(减一个重复的0)

呵呵,这样可以吗? 如果还有什么疑问,可以EMAIL:big_apple@netease.com :)
explorer007 2001-07-22
  • 打赏
  • 举报
回复
我来简单说说,因为原码和反码的编码规则都是一样的,所以它们能表示的数的数目也是相同的,即2^N - 1个;而补码是以模相加,不存在+0,-0。
另外,-1的补码 = 10.00000000 - 0.00000001 = 1.0000000
0的移码 = 2N+X = 100000000 + 00000000 = 100000000

呵呵,简单说说,可以解释吗? :)

ghosert 2001-07-22
  • 打赏
  • 举报
回复
再来个老大啊!!!!!!!!!!!
ghosert 2001-07-22
  • 打赏
  • 举报
回复
还有老大吗?
ghosert 2001-07-22
  • 打赏
  • 举报
回复
关于“因为原码和反码的编码规则都是一样的,所以它们能表示的数的数目也是相同的,即2^N - 1个”还是不懂啊!老大再帮帮忙!

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧