1 / 15
文档名称:

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

格式:doc   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

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

上传人:xxj16588 2016/7/23 文件大小:0 KB

下载得到文件列表

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

相关文档

文档介绍

文档介绍:很完整的 2、8、 10、 16 进制转换方法很完整的 2、8、 10、 16 单身很痛苦, 单身久了更痛苦, 前几天我看见一头母猪, 都觉得它眉清目秀的什么叫残忍? 是男人,我就打断他三条腿;是公狗,我就打断它五条腿! 很完整的 2、8、 10、 16 进制转换方法最近在研究 C 语言,因为要用到各进制间转换,所以收集了一些资料…这是一节“前不着村后不着店”的课。不同进制之间的转换纯粹是数学上的计算。不过,你不必担心会有么复杂,无非是乘或除的计算。生活中其实很多地方的计数方法都多少有点不同进制的影子。比如我们最常用的 10 进制, 其实起源于人有 10 个指头。如果我们的祖先始终没有摆脱手脚不分的境况,我想我们现在一定是在使用 20 进制。至于二进制……没有袜子称为 0 只袜子,有一只袜子称为 1 只袜子, 但若有两袜子,则我们常说的是: 1 双袜子。生活中还有:七进制,比如星期。十六进制,比如小时或“一打”, 六十进制,比如分钟或角度……我们找到问号字符( ?)的 ASCII 值是 63 ,那么我们可以把它转换为八进值: 77, 然后用‘\77 ′来表示’?'。由于是八进制, 所以本应写成‘\077 ′, 但因为 C,C++ 规定不允许使用斜杠加 10 进制数来表示字符,所以这里的 0 可以不写。事实上我们很少在实际编程中非要用转义符加八进制数来表示一个字符,所以, 小节的内容,大家仅仅了解就行。 十六进制数转换成十进制数 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 次方。假设有一个十六进数 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 十六进制数的表达方法如果不使用特殊的书写形式, 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; 至此,我们学完了所有进制: 10 进制, 8 进制, 16 进制数的表达方式。最后一点很重要, C/C++ 中, 10 进制数有正负之分,比如 12表示正 12 ,而-12 表示负 12, ;但 8 进制和 16 进制只能用达无符号的正整数,如果你在代码中里: -078 ,或者写: -0xF2,C,C++ 并不把它当成一个负数。 十六进制数在转义符中的使用转义符也可以接一个 16 进制数来表示一个字符。如在 小节中说的‘?’字符,可以有以下表达方式: ‘?’// 直接输入字符‘\77 ′// 用八进制,此时可以省略开头的 0 ‘\0× 3F’// 用十六进制同样, 这一小节只用于了解。除了空字符用八进制数‘\0′表示以外,我们很少用后两种方法表示一个字符。 十进制数转换到二、八、十六进制数 10 进制数转换为 2 进制数给你一个十进制,