源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C 语言进制之间的转换

  • 时间:2020-06-08 15:20 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C 语言进制之间的转换
[b]二进制、八进制和十六进制向十进制转换都是非常容易的,就是“按权相加”。[/b] 所谓“权”,也即“位权”。例如,十进制第1位的位权为100=1,第2位的位权为101=10,第3位的位权为102=100;而二进制第1位的位权为20=1,第2位的位权为21=2,第3位的位权为22=4。设数字所采用的进制为N(基数也是N),那么第 i 位的位权为 N(i-1)。 不同进制转换为十进制举例: 二进制:1001 = 1×23 + 0×22+ 0×21 + 1×20 = 8 + 0 + 0 + 1 = 9 二进制:101.1001 = 1×22 + 0×21+ 1×20+ 1×2-1+ 0×2-2 + 0×2-3 + 1×2-4= 4 + 0 + 1 + 0.5 + 0 + 0 + 0.0625 = 5.5625 八进制:0302 = 3×82 + 0×81+ 2×80 = 192 + 0 + 2 = 194 八进制:0302.46 = 3×82 + 0×81 + 2×80 + 4×8-1 + 6×8-2 = 192 + 0 + 2 + 0.5 + 0.09375= 194.59375 十六进制:0Xea7 = 14×162 + 10×161 + 7×160= 3751 [b]十进制转换为二进制——辗除法[/b] 上节的表格中给出了简单的十进制和二进制的转换关系,要想获得更多的转换关系,可以使用辗除法。辗除法也就是“除模取余”法。除模取余就是将一个几进制的数转化成另一个进制时, 另一个进制的基数就是模,用将要转化的进制数除以模,取它的余数。 下图以十进制的“19”转换为二进制为例进行讲解: [img]http://files.jb51.net/file_images/article/201607/2016716151829069.png?201661615191[/img] 如图所示,以2为除数,一直相除下去,直到商为0,余数则为求得的二进制数。 注意:余数要倒序排列,也就是说,最先求得的余数排在二进制的最后面,最后求得的余数排在二进制的最前面。上面的例子中,最后求得的二进制数为 10011。 虽然其他进制也可以按照辗除法来转换,但是比较麻烦,下面介绍更简单的方法。 [b]二进制和八进制的转换 [/b] 二进制向八进制的转换是每三位二进制数转换为一位八进制数,运算的顺序是从低位向高位依次进行,高位不足三位用零补充。以二进制“1011101”为例,如下图所示: [img]http://files.jb51.net/file_images/article/201607/2016716152442028.png?201661615252[/img] [b]转换的结果为:1011101 = 0135[/b] 八进制向二进制转换的思路是八进制的一位转换为二进制的三位,运算的顺序是从低位向高位依次进行。同样以八进制“0135”为例,如下图所示: [img]http://files.jb51.net/file_images/article/201607/2016716153006878.png?2016616153038[/img] [b]转换的结果为:0135 = 1011101[/b] [b]二进制和十六进制的转换[/b] 二进制向十六进制转换时,四位转换成十六进制的一位,运算的顺序是从低位向高位依次进行,高位不足四位用零补。以“1110011”转换成十六进制为例,如下图所示: [img]http://files.jb51.net/file_images/article/201607/2016716153203839.png?2016616153216[/img] [b]转换的结果为:1001011101 = 0X25D[/b] 十六进制向二进制转换,就是把十六进制的一位转换成二进制的四位,注意运算的顺序是从低位向高位依次进行。同样以十六进制“0X25D”为例,如下图所示: [img]http://files.jb51.net/file_images/article/201607/2016716152619680.png?2016616152645[/img]  以上就是对 C语言进制直接转化做的一个资料整理,学习进制转换的朋友可以参考下
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部