【C语言_复习_学习第二课】什么是进制?进制之间应该如何转换

简介: 什么是进制?在我们的生活中处处充满进制,一天是24个小时、一个小时是60分钟、一分钟是60秒、一个星期一共7天........还有大家听说过半斤八两这个词语吗?也就是说买半斤东西也就是八两,一斤也就是十六两,满16进一位这就是十六进制。我今天就当一次小学老师来考考你,5+8等于多少(我没有在和大家开玩笑)你会说等于13,你的回答就是十进制也就是满十进一,而在计算机中数字都是以二进制(只有1和0)存储的也就是满二进一位,当然也有八进制(从0到7)、十六进制(从0到F)都是类似的,八进制满八进一位,十六进制满十六进一位(其中十六进制10用A来表示,11-B、12-C、13-D、14-E、15-F)

 课前回顾:C语言是一种什么语言? A高级语言、B低级语言、 C符号语言、 D汇编语言,相信大家都不会答错。

目录

十进制转换为二进制:

小数处理:

二进制转换为十进制

8421拼凑大法

十进制转换为八进制

八进制转换为十进制:

二进制转换为八进制

八进制转换为二进制

二进制转换为十六进制

十六进制转换为八进制

结尾彩蛋:

什么是进制?在我们的生活中处处充满进制,一天是24个小时、一个小时是60分钟、一分钟是60秒、一个星期一共7天........还有大家听说过半斤八两这个词语吗?也就是说买半斤东西也就是八两,一斤也就是十六两,满16进一位这就是十六进制。我今天就当一次小学老师来考考你,5+8等于多少(我没有在和大家开玩笑)你会说等于13,你的回答就是十进制也就是满十进一,而在计算机中数字都是以二进制(只有1和0)存储的也就是满二进一位,当然也有八进制(从0到7)、十六进制(从0到F)都是类似的,八进制满八进一位,十六进制满十六进一位(其中十六进制10用A来表示,11-B、12-C、13-D、14-E、15-F)。

我们现在开始求各个进制之间的转换

进制表示 B二进制  O或Q表示八进制、D表示十进制、H表示十六进制,也可以使用角标(10)n进制。

十进制转换为二进制:

整数处理:

十进制整数转换为二进制整数十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

image.gif编辑

小数处理:

十进制小数转换为二进制小数采用“乘2取整数顺排序(按照正序的顺序排序)。做法:使用十进制小数乘以2,然后取其整数位,直到小数位为0为止,当然有些小数是除不尽的我们可以根据精度来保留。

image.gif编辑

二进制转换为十进制

二进制转换位十进制可以使用按权展开在相加的方法

image.gif编辑

如果是小数的话,就按照-1次方、-2次方的顺序进行计算。

8421拼凑大法

个人技巧:我们在计算二进制转换十进制或者十进制转换为二进制是可以使用8421拼凑大法。

8421拼凑大法: 二进制左边的一位永远是右边一位的二倍,例如二进制1表示十进制1,二进制10表示十进制2、二进制100表示十进制4、二进制1000表示十进制8,这就8421打法。左边一位是相邻右边一位二倍我们只要记住每一位上边的数就可以表示出来十进制

128 64 32 16  8 4 2 1,这样我们可以比较轻松的表示十进制。如果是十进制转换为二进制则反之。

十进制转换为八进制

十进制转换为八进制和十进制转换为二进制差不多,十转二是"除2取余,逆序排列"法。十转八是除8取余,逆序排列.

具体做法是:用8整除十进制整数,可以得到一个商和余数;再用8去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

image.gif编辑

八进制转换为十进制:

和二进制转换位十进制的方法相同,按权展开在相加的方法。

image.gif编辑

十进制和十六进制互相转换就比较简单了

十转十六同样使用除2取余,逆序排列的方法。

十六转十同样使用按权展开在相加的方法

需要注意的是十六进制的10用A表示,后边以此类推!

image.gif编辑

image.gif编辑

二进制转换为八进制

三位二进制可以表示一位八进制,我们可以使用421大法(因为八进制可以表示0-7三位二进制可以表示0-7)

image.gif编辑

八进制转换为二进制

由上文可以知道三位二进制表示一位八进制,一位八进制表示三位二进制。

image.gif编辑

二进制转换为十六进制

四位二进制可以表示一位十六进制,我们可以使用8421大法(因为十六进制可以表示0-15也就是0-F四位二进制可以表示0-15)

image.gif编辑

十六进制转换为八进制

和八进制的方法相同一位十六进制表示四位二进制。

image.gif编辑

注意:八进制和十六进制不能直接转换,需要先转换为其他进制然后在进行转换

结尾彩蛋:

image.gif编辑

复习专用

萌新博主,如果哪里出现错误欢迎指正。感谢您的三连!

目录
相关文章
|
5月前
|
存储 C语言
C语言学习记录——动态内存函数介绍(malloc、free、calloc、realloc)
C语言学习记录——动态内存函数介绍(malloc、free、calloc、realloc)
338 1
|
1月前
|
存储 编译器 C语言
【C语言】简单介绍进制和操作符
【C语言】简单介绍进制和操作符
161 1
|
1月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
15 0
|
3月前
|
编译器 C语言
C语言函数的学习
掌握函数的使用是学习C语言的关键一环,理解和应用这些基本的函数概念将使你能够更有效地利用C语言的强大功能。
23 0
|
5月前
|
存储 程序员 Go
|
5月前
|
存储 编译器 C语言
c语言学习历程【1】
c语言学习历程【1】
68 1
|
5月前
|
C语言
C语言学习记录——枚举(定义、与结构体的区别、优点)
C语言学习记录——枚举(定义、与结构体的区别、优点)
59 3
|
5月前
|
C语言
C语言学习记录——通讯录(静态内存)
C语言学习记录——通讯录(静态内存)
32 2
|
5月前
|
存储 C语言
C语言学习记录——联合体(共用体、特点、用法、联合体大小计算)
C语言学习记录——联合体(共用体、特点、用法、联合体大小计算)
78 2
|
5月前
|
测试技术 C语言
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
46 1