很完整的2、8、10、16进制转换方法.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
很完整的2、8、10、16进制转换方法.pdf

很完整的 2、8、10、16 进制转换方法 最近在研究 C 语言,因为要用到各进制间转换,所以收集了一些资料… 这是一节“前不着村后不着店”的课。不同进制之间的转换纯粹是数学上的计算。不过,你 不必担心会有么复杂,无非是乘或除的计算。 生活中其实很多地方的计数方法都多少有点不同进制的影子。 比如我们最常用的 10 进制,其实起源于人有 10个指头。如果我们的祖先始终没有摆脱手脚 不分的境况,我想我们现在一定是在使用 20 进制。 至于二进制……没有袜子称为 0 只袜子,有一只袜子称为 1 只袜子,但若有两袜子,则我们 常说的是:1双袜子。 生活中还有:七进制,比如星期。十六进制,比如小时或“一打”,六十进制,比如分钟或角 度…… 我们找到问号字符 (?)的 ASCII 值是 63,那么我们可以把它转换为八进值:77,然后用 ‘\77 ′来表示’?。由于是八进制,所以本应写成 ‘\077′,但因为 C,C++规定不允许使用斜杠 加 10 进制数来表示字符,所以这里的 0 可以不写。 事实上我们很少在实际编程中非要用转义符加八进制数来表示一个字符,所以,6.2.4 小节 的内容,大家仅仅了解就行。 6.2.5 十六进制数转换成十进制数 2 进制,用两个阿拉伯数字:0、1; 8 进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7; 10 进制,用十个阿拉伯数字:0 到9; 16 进制,用十六个阿拉伯数字……等等,阿拉伯人或说是印度人,只发明了 10 个数字啊? 16 进制就是逢 16 进 1,但我们只有 0~9 这十个数字,所以我们用 A,B,C,D,E,F 这五个 字母来分别表示 10,11,12,13,14,15。字母不区分大小写。 十六进制数的第 0 位的权值为 16 的0 次方,第1位的权值为 16 的1 次方,第 2 位的权值为 16的 2 次方…… 所以,在第 N(N 从0 开始)位上,如果是是数 X (X 大于等于0,并且 X 小于等于 15,即: F)表示的大小为 X * 16的 N 次方。 第 1 页 共 10 页 假设有一个十六进数 2AF5, 那么如何换算成 10进制呢? 用竖式计算: 2AF5 换算成10 进制: 第 0 位: 5 * 16^0 = 5 第 1 位: F * 16^1 = 240 第 2 位: A * 16^2 = 2560 第 3 位: 2 * 16^3 = 8192 + ————————————- 10997 直接计算就是: 5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997 (别忘了,在上面的计算中,A 表示10,而F 表示15) 现在可以看出,所有进制换算成 10进制,关键在于各自的权值不同。 假设有人问你,十进数 1234 为什么是 一千二百三十四?你尽可以给他这么一个算式: 1234 = 1 * 10^3 + 2 * 10^2 + 3 * 10^1 + 4 * 10^0 6.2.6 十六进制数的表达方法 如果不使用特殊的书写形式,16 进制数也会和 10 进制相混。随便一个数:9876,就看不出 它是 16 进制或 10 进制。 C,C++规定,16 进制数必须以 0x 开头。比如 0×1 表示一个 16 进制数。而 1 则表示一个十 进制。另外如:0xff,0xFF,0X102A,等等。其中的 x 也也不区分大小写。(注意:0x中的 0 是 数字 0,而不是字母 O) 以下是一些用法示例: int a = 0×100F; int b = 0×70 + a; 第 2 页 共 10 页 至此,我们学完了所有进制:10 进制,8 进制,16 进制数的表达方式。最后一点很重要,C/C++ 中,10 进制数有正负之分,比如 12表示正 12,而-12 表示负 12,;但8进制和 16 进制只能 用达无符号的正整数,如果你在代码中里:-078,或者写:-0xF2,C,C++并不把它当成一个负 数。 6.2.7 十六进制数在转义符中的使用 转

文档评论(0)

小青 + 关注
文档贡献者

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

1亿VIP精品文档

相关文档