网站大量收购闲置独家精品文档,联系QQ:2885784924

计算机各种进制转换.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
为什么需要八进制和十六进制? 编程中,我们常用的还是 10 进制……必竟 C/C++是高级语言。比如: int a = 100,b = 99。 不过,因为数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进 制,可以更直观地解决问题。 但,二进制数太长了。比如 int 类型占用 4 个字节,32 位。比如 100,用 int 类型的二进制数表达将是: 0000 0000 0000 0000 0110 0100 面对这么长的数进行思考或操作,没有人会喜欢。因此, C,C++ 没有提供在代码直接写二进制数的方法。 用 16 进制或 8 进制可以解决这个问题。因为,进制越大,数的表达长度也就越短。不 过,为什么偏偏是 16 或 8 进制,而不其它的,诸如 9 或 20 进制呢? 2、8、16,分别是 2 的 1 次方,3 次方,4 次方。这一点使得三种进制之间可以非常直接地互相转换。8 进制或 16 进制缩短了二进制数,但保持了二进制数的表达特点。在下面的关于进制转换的课程中,你可以发现这一点。 二、八、十六进制数转换到十进制数 二进制数转换为十进制数 二进制数第 0 位的权值是 2 的 0 次方,第 1 位的权值是 2 的 1 次方…… 所以,设有一个二进制数:0110 0100,转换为 10 进制为: 下面是竖式: 0110 0100 换算成 十进制 第 0 位 0 * 20 = 0 第 1 位 0 * 21 = 0 第 2 位 1 * 22 = 4 第 3 位 0 * 23 = 0 第 4 第 4 位 0 * 24 = 0 第 5 位 1 * 25 = 32 第 6 位 1 * 26 = 64 第 7 位 0 * 27 = 0 100 用横式计算为: 0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100 0 乘以多少都是 0,所以我们也可以直接跳过值为 0 的位: 1 * 22 + 1 * 23 + 1 * 25 + 1 * 26 = 100 八进制数转换为十进制数 八进制就是逢 8 进 1。 八进制数采用 0~7 这八数来表达一个数。 八进制数第 0 位的权值为 8 的 0 次方,第 1 位权值为 8 的 1 次方,第 2 位权值为 8 的 2 次方…… 所以,设有一个八进制数:1507,转换为十进制为: 用竖式表示: 1507 换算成十进制。 第 0 第 0 位 7 * 80 = 7 第 1 位 0 * 81 = 0 第 2 位 5 * 82 = 320 第 3 位 1 * 83 = 512 839 同样,我们也可以用横式直接计算: 7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839 结果是,八进制数 1507 转换成十进制数为 839 八进制数的表达方法 C,C++语言中,如何表达一个八进制数呢?如果这个数是 876,我们可以断定它不是八进制数,因为八进制数中不可能出 7 以上的阿拉伯数字。但如果这个数是 123、是 567, 或那么它是八进制数还是 10 进制数,都有可能。 所以,C,C++规定,一个数如果要指明它采用八进制,必须在它前面加上一个 0,如: 123 是十进制,但 0123 则表示采用八进制。这就是八进制数在 C、C++中的表达方法。 因为 C 和 C++都没有提供二进制数的表达方法,所以,这里所学的八进制是我们学习的,CtC++语言的数值表达的第二种进制法。 现在,对于同样一个数,比如是 100,我们在代码中可以用平常的 10 进制表达,例如在变量初始化时: int a = 100。 我们也可以这样写: int a = 0144。 //0144 是八进制的 100;一个 10 进制数如何转成 8 进制,我们后面会学到。 千万记住,用八进制表达时,你不能少了最前的那个 0。否则计算机会通通当成 10 进制。不过,有一个地方使用八进制数时,却不能使用加 0,那就是我们前面学的用于表达字符的“转义符”表达法。 八进制数在转义符中的使用 我们学过用一个转义符\加上一个特殊字母来表示某个字符的方法,如:\n表示换 行(line,而\t表示 Tab 字符,\则表示单引号。今天我们又学习了一种使用转义符的方法:转义符\后面接一个八进制数,用于表示 ASCII 码等于该值的字符。 比如,查一下第 5 章中的 ASCII 码表,我们找到问号字符?的 ASCII 值是 63,那么我们可以把它转换为八进值:77,然后用 \77来表示?。因为是八进制,所以本应写成\077,但因为 C,C++规定不允许使用斜杠加 10 进制数来表示字符,所以

您可能关注的文档

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地湖北
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档