描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302495420
《C语言程序设计案例课堂》的特色如下:
* 零基础、入门级的讲解
无论您是否从事计算机相关行业,无论您是否接触过C语言编程,都能从本书中找到适合的起点。
* 超多、实用、专业的范例和项目
本书在编排上紧密结合深入学习C语言编程技术的先后过程,从C语言的基本语法开始,逐步带领大家深入地学习各种应用技巧,侧重实战技能,使用简单易懂的实际案例进行分析和操作指导,让读者读起来简明轻松,操作起来有章可循。
* 随时检测自己的学习成果
每章首页中均提供了学习目标,以指导读者重点学习及学后检查。
大部分章节*后的“跟我学上机”板块,均根据本章内容精选而成,读者可以随时检测自己的学习成果和实战能力,做到融会贯通。
* 细致入微、贴心提示
本书在讲解过程中,在各章中使用了“注意”和“提示”等小贴士,使读者在学习过程中更清楚地了解相关操作、理解相关概念,并轻松掌握各种操作技巧。
* 专业创作团队和技术支持
无论您在学习过程中遇到任何问题,均可加入QQ群(案例课堂VIP)进行提问,专家人员会在线答疑。
超值赠送资源
* 全程同步教学录像
涵盖本书所有知识点,详细讲解每个实例及项目的过程及技术关键点,比看书更轻松地掌握书中所有的C语言编程知识,而且扩展的讲解部分可以使您得到比书中更多的收获。
* 超多容量资源大放送
赠送大量资源,包括本书实例源文件、精美教学幻灯片、精选本书教学视频、C语言标准库函数查询手册、C程序员职业规划、全国计算机等级考试二级C考试大纲及应试技巧、C程序员面试技巧、C常见面试题、C常见错误及解决方案、C开发经验及技巧大汇总等。读者可以通过QQ群(案例课堂VIP)获取赠送资源,还可以通过配套网站下载赠送资源。
《C语言程序设计案例课堂》以零基础讲解为宗旨,用实例引导读者深入学习,采取“基础入门→核心技术→高级应用→项目开发实战”的讲解模式,深入浅出地讲解C语言的各项技术及实战技能。
《C语言程序设计案例课堂》第Ⅰ篇“基础入门”主要讲解走进C语言的世界、常量与变量、数据类型、输入和输出、运算符和表达式、程序流程控制结构等;第Ⅱ篇“核心技术”主要讲解数组、算法与流程图、函数与函数中变量、指针、操作文件、编译与预处理指令、使用库函数等;第Ⅲ篇“高级应用”主要讲解位运算,结构体、共用体和枚举,动态数据结构,数据结构进阶,排序等;第Ⅳ篇“项目开发实战”主要讲解开发日历查阅系统、开发员工信息管理系统、开发迷宫小游戏。
《C语言程序设计案例课堂》适合任何想学习C语言编程的人员,无论您是否从事计算机相关行业,无论您是否接触过C语言,通过学习本书均可快速掌握C语言在项目开发中的知识和技巧。
目 录
第I篇 基础入门
第1章 初识庐山真面目——
走进C语言的世界 3
1.1
C语言概述 4
1.1.1
C语言的发展史 4
1.1.2
C语言的特点 5
1.1.3
C语言的应用 6
1.2
C语言的常用开发环境 6
1.2.1
Visual C 6.0开发环境 7
1.2.2
Turbo C 2.0开发环境 11
1.3 编写第一个C语言程序 13
1.3.1
C语言编译机制 13
1.3.2
在Visual C 6.0中开发C程序 13
1.3.3
在Turbo C中开发C程序 17
1.4
C语言程序的组成 19
1.4.1
C语言程序整体风貌 19
1.4.2
#include的秘密 19
1.4.3
程序的出入口——main函数 20
1.4.4
数据集装箱——常量和变量 21
1.4.5
如何输出程序结果——输出函数 21
1.4.6
注释 21
1.4.7
代码书写规范 22
1.5 大神解惑 23
1.6 跟我学上机 23
第2章 程序中的变与不变——常量与变量 25
2.1 标识符和关键字 26
2.1.1
标识符 26
2.1.2
关键字 26
2.2 常量 27
2.2.1
整数常量 27
2.2.2
浮点常量 28
2.2.3
字符常量 28
2.2.4
字符串常量 30
2.2.5
符号常量 30
2.3 变量 31
2.3.1
变量的定义 32
2.3.2
变量的声明 32
2.3.3
变量的初始化与赋值 33
2.3.4
变量的分类 34
2.4 综合案例——处理学生的期末成绩 38
2.5 大神解惑 40
2.6 跟我学上机 40
第3章 程序中的数据种类——数据类型 41
3.1 数制 42
3.1.1
二进制 42
3.1.2
八进制 42
3.1.3
十六进制 42
3.1.4
数制间的转换 42
3.2 整型数据 45
3.2.1
整型数据的存放形式 46
3.2.2
整型变量的溢出 47
3.3 浮点型数据 48
3.3.1
浮点型数据的存放形式 48
3.3.2
有效数字 49
3.4 字符型数据 50
3.5 数据类型的转换 50
3.5.1
隐式转换 50
3.5.2
显式转换 52
3.6 综合案例——各种进制的转换 53
3.7 大神解惑 55
3.8 跟我学上机 55
第4章 用户与计算机的交互——输入和输出 57
4.1 标准输入输出 58
4.2 格式化输入输出 58
4.2.1
格式化输出函数 59
4.2.2
格式化输入函数 62
4.3 字符输入输出 65
4.3.1
字符的输出函数 65
4.3.2
字符的输入函数 66
4.4 字符串的输入输出 67
4.4.1
字符串的输出函数 67
4.4.2
字符串的输入函数 68
4.5 综合案例——输入和输出的综合应用 69
4.6 大神解惑 70
4.7 跟我学上机 70
第5章 谁来操作数据——运算符和表达式 71
5.1 运算符 72
5.1.1
运算符的分类 72
5.1.2
运算符的优先级和结合性 72
5.2 表达式 73
5.3 运算符与表达式 74
5.3.1
算术运算符与算术表达式 74
5.3.2
赋值运算符与赋值表达式 77
5.3.3
关系运算符与关系表达式 79
5.3.4
逻辑运算符与逻辑表达式 81
5.3.5
位运算符与位运算表达式 83
5.3.6
条件运算符与条件表达式 85
5.3.7
逗号运算符与逗号表达式 86
5.4 语句 87
5.4.1
表达式语句 87
5.4.2
函数调用语句 87
5.4.3
控制语句 88
5.4.4
复合语句 88
5.4.5
空语句 88
5.5 综合案例——关系运算符的应用 89
5.6 大神解惑 89
5.7 跟我学上机 90
第6章 程序的执行方向——程序流程控制结构 91
6.1 顺序结构 92
6.2 选择结构 93
6.2.1
if语句 93
6.2.2
if…else语句 94
6.2.3
选择嵌套语句 95
6.2.4
switch分支结构语句 99
6.3 循环结构 101
6.3.1
while语句 101
6.3.2
do…while语句 102
6.3.3
for语句 103
6.3.4
循环语句的嵌套 105
6.4 跳转语句 106
6.4.1
break语句 106
6.4.2
continue语句 107
6.4.3
goto语句 108
6.5 综合案例——制作简易计算器 109
6.6 大神解惑 111
6.7 跟我学上机 112
第Ⅱ篇 核心技术
第7章 特殊的元素集合——数组 115
7.1 数组概述 116
7.2 一维数组 116
7.2.1
一维数组的定义 116
7.2.2
一维数组的引用 118
7.2.3
一维数组的初始化 119
7.2.4
程序实例 121
7.3 二维数组 123
7.3.1
二维数组的定义 123
7.3.2
二维数组的引用 124
7.3.3
二维数组的初始化 125
7.3.4
多维数组 127
7.3.5
程序实例 128
7.4 字符数组 131
7.4.1
字符数组的定义和初始化 131
7.4.2
字符串和字符数组 133
7.4.3
字符数组的输出与输入 134
7.4.4
字符串处理函数 137
7.5 综合案例——矩阵的乘法 141
7.6 大神解惑 143
7.7 跟我学上机 143
第8章 程序描述——算法与流程图 145
8.1 算法概述 146
8.1.1
算法的概念 146
8.1.2
算法的特性 146
8.1.3
算法的优劣 147
8.2 流程图简介 148
8.2.1
传统流程图 148
8.2.2
N-S流程图 150
8.3 算法的表示 150
8.3.1
自然语言表示法 150
8.3.2
流程图表示法 152
8.3.3
N-S流程图表示法 156
8.3.4
伪代码表示法 159
8.3.5
计算机语言表示法 162
8.4 结构化程序设计方法 163
8.5 综合案例——求解一元二次方程的根 163
8.6 大神解惑 166
8.7 跟我学上机 166
第9章 C语言灵魂——函数与函数中变量 167
9.1 函数概述 168
9.1.1
函数的概念 168
9.1.2
函数的分类 169
9.1.3
函数的声明与定义 171
9.2 函数的返回语句 174
9.2.1
函数的返回值 175
9.2.2
函数的结束标志 176
9.2.3
函数的返回值类型 177
9.3 函数的参数 178
9.3.1
形式参数与实际参数 178
9.3.2
参数的传递方式 179
9.4 函数的调用 182
9.4.1
函数调用的方式 182
9.4.2
函数的嵌套调用 185
9.4.3
函数的递归调用 188
9.5 内部函数与外部函数 192
9.5.1
内部函数 192
9.5.2
外部函数 193
9.6
main()函数的参数 195
9.7 局部变量和全局变量 196
9.7.1
局部变量 196
9.7.2
全局变量 198
9.8 变量的存储类别 202
9.8.1
动态存储与静态存储 203
9.8.2
自动变量 203
9.8.3
静态变量 205
9.8.4
寄存器变量 209
9.8.5
外部变量 210
9.9 综合案例——求解非线性方程 212
9.10
大神解惑 215
9.11
跟我学上机 217
第10章 灵活调用内存地址——指针 219
10.1
指针概述 220
10.1.1
地址与指针 220
10.1.2
指针变量 221
10.1.3
指针变量的引用 223
10.2
指针与函数 226
10.2.1
指针变量作为函数参数 226
10.2.2
函数返回指针 229
10.2.3
指向函数的指针 231
10.3
指针与数组 233
10.3.1
数组元素的指针 234
10.3.2
指针的运算 234
10.3.3
通过指针引用数组元素 235
10.3.4
指向数组的指针变量作为函数参数 238
10.3.5
通过指针对多维数组进行引用 244
10.4
指针与字符串 250
10.4.1
字符指针 250
10.4.2
使用字符指针作函数参数 253
10.4.3
字符数组与字符指针变量的区别 256
10.5
指针数组和多重指针 258
10.5.1
指针数组 258
10.5.2
指向指针的指针 262
10.6
综合案例——使用指针操作数组 267
10.7
大神解惑 272
10.8
跟我学上机 275
第11章 数据存储——操作文件 277
11.1
文件概述 278
11.1.1
文件类型 278
11.1.2
文件指针 279
11.1.3
文件的缓冲区 280
11.2
文件的打开与关闭 281
11.2.1
文件的打开 281
11.2.2
文件的关闭 282
11.3
文件的读写 283
11.3.1
字符的读写 283
11.3.2
字符串的读写 287
11.3.3
数据块的读写 291
11.3.4
格式化读写函数 295
11.4
文件定位与文件的随机读写 298
11.4.1
文件头定位函数rewind() 299
11.4.2
当前读写位置函数ftell() 300
11.4.3
随机定位函数fseek() 301
11.5
文件检测函数 304
11.5.1
文件结束判断函数feof() 304
11.5.2
文件读写错误检测函数ferror() 305
11.5.3
文件错误标志清除函数clearerr() 307
11.6
综合案例——文件的综合操作 308
11.7
大神解惑 316
11.8
跟我学上机 316
第12章 未雨绸缪——编译与预处理指令 317
12.1
预处理指令 318
12.2
宏定义 318
12.2.1
变量式宏定义 318
12.2.2
宏定义的嵌套 321
12.2.3
宏定义的作用范围 322
12.2.4
带参数的宏定义 323
12.2.5
宏定义的多行表示 327
12.3
文件包含 327
12.4
条件编译 329
12.4.1
条件编译命令 329
12.4.2
调试中使用DEBUG宏 332
12.4.3
文件的嵌套包含与条件编译 333
12.5
综合案例——求解圆、矩形以及三角形的面积 334
12.6
大神解惑 335
12.7
跟我学上机 335
第13章 提高开发效率——使用库函数 337
13.1
标准C库函数 338
13.2
数学函数“math.h” 338
13.2.1
求幂函数与开平方函数 338
13.2.2
指数函数与对数函数 339
13.2.3
三角函数 340
13.2.4
绝对值函数 341
13.2.5
取整函数与取余函数 342
13.3
字符串函数“string.h” 343
13.3.1
字符串长度函数 343
13.3.2
字符串连接函数 344
13.3.3
字符串复制函数 345
13.3.4
字符串大小写转换函数 346
13.3.5
字符串查找函数 347
13.3.6
字符串比较函数 348
13.4
字符函数“ctype.h” 349
13.4.1
字符的类型判断函数 349
13.4.2
字符大小写转换函数 351
13.5
其他函数 352
13.5.1
随机函数 352
13.5.2
日期时间函数 353
13.5.3
结束程序函数 354
13.6
综合案例——创建报数游戏 355
13.7
大神解惑 356
13.8
跟我学上机 357
第III篇 高级应用
第14章 内部数据操作——位运算 361
14.1
位(bit)与字节(byte)的关系 362
14.2
位运算符 362
14.2.1
按位与运算符(&) 362
14.2.2
按位或运算符(|) 363
14.2.3
按位异或运算符(^) 364
14.2.4
按位取反运算符(~) 365
14.2.5
左移运算符(<
14.2.6
右移运算符(>>) 367
14.2.7
位复合赋值运算符 368
14.3
循环移位 368
14.3.1
循环左移 369
14.3.2
循环右移 370
14.4
位段 371
14.4.1
位段的定义 371
14.4.2
位段中数据的引用 371
14.5
综合案例——将十进制数转换为二进制数 373
14.6
大神解惑 374
14.7
跟我学上机 375
第15章 灵活定义数据类型——结构体、共用体和枚举 377
15.1
结构体概述 378
15.1.1
结构体类型 378
15.1.2
定义结构体变量 379
15.1.3
初始化结构体变量 381
15.1.4
结构体变量的引用 381
15.2
结构体数组 383
15.2.1
定义结构体数组 383
15.2.2
结构体数组的初始化 384
15.2.3
结构体数组元素的引用 385
15.2.4
结构体数组应用实例 386
15.3
结构体指针 388
15.3.1
指向结构体变量的指针 388
15.3.2
指向结构体数组的指针 390
15.3.3
结构体变量作为函数参数 391
15.3.4
指向结构体变量的指针作为函数参数 393
15.3.5
结构体作为函数的返回值 394
15.4
共用体 395
15.4.1
共用体的定义 395
15.4.2
共用体变量的定义 396
15.4.3
共用体变量的初始化以及引用 397
15.5
枚举 399
15.5.1
定义枚举类型 400
15.5.2
定义枚举类型变量 400
15.6
综合案例——创建学生信息结构体 402
15.7
大神解惑 403
15.8
跟我学上机 404
第16章 动态存储分配——
动态数据结构 405
16.1
动态存储分配概述 406
16.1.1
malloc()函数 406
16.1.2
calloc()函数 407
16.1.3
realloc()函数 408
16.1.4
free()函数 409
16.2
链表概述 410
16.2.1
链表结点的定义 411
16.2.2
链表的建立 411
16.2.3
链表的遍历 412
16.2.4
链表结点的插入 413
16.2.5
链表结点的删除 417
16.3
综合案例——综合应用链表 420
16.4
大神解惑 421
16.5
跟我学上机 422
第17章 逻辑结构——
数据结构进阶 423
17.1
数据结构概述 424
17.2
线性表 425
17.3
栈 426
17.3.1
栈的基本操作 427
17.3.2
顺序栈 427
17.3.3
链式栈 429
17.4
队列 431
17.4.1
队列的基本运算 432
17.4.2
顺序队列 432
17.4.3
链式队列 436
17.5
二叉树 441
17.5.1
二叉树的定义 441
17.5.2
二叉树的遍历 442
17.6
查找 442
17.6.1
顺序查找 442
17.6.2
折半查找 444
17.7
综合案例——使用栈转换数据的进制 446
17.8
大神解惑 447
17.9
跟我学上机 448
第18章 整理数据的妙招——排序 449
18.1
排序概述 450
18.2
插入排序 450
18.2.1
直接插入排序 450
18.2.2
希尔排序 452
18.3
选择排序 453
18.3.1
简单选择排序 453
18.3.2
堆排序 455
18.4
交换排序 457
18.4.1
冒泡排序 457
18.4.2
快速排序 458
18.5
归并排序 460
18.6
基数排序 462
18.7
大神解惑 464
18.8
跟我学上机 465
第IV篇 项目开发实战
第19章 项目实训1——开发日历查阅系统 469
19.1
需求分析 470
19.2
功能分析 470
19.3
开发前准备工作 472
19.4
系统代码编写 476
19.4.1
查询年历函数showCalendarOfYear() 476
19.4.2
查询月历函数showCalendarOfMonth() 477
19.4.3
日期查询模块 478
19.5
系统运行 485
19.6
项目总结 486
第20章 项目实训2—— 开发员工信息管理系统 487
20.1
需求分析 488
20.2
功能分析 489
20.3
开发前准备工作 490
20.4
系统代码编写 491
20.4.1
main.c文件 491
20.4.2
employee.c文件 495
20.5
系统运行 499
20.6
项目总结 500
第21章 项目实训3——开发迷宫小游戏 501
21.1
需求分析 502
21.2
功能分析 502
21.3
开发前准备工作 504
21.4
系统代码编写 505
21.4.1
main.c文件 505
21.4.2
mazeGame.c文件 507
21.5
系统运行 513
21.6
项目总结 514
前 言
“程序开发案例课堂”系列图书是专门为软件开发和数据库初学者量身定制的一套学习用书,整套书涵盖软件开发、数据库设计等方面,具有以下特点。
* 前沿科技
无论是软件开发还是数据库设计,我们都精选较为前沿或者用户群最大的领域推进,帮助读者认识和了解最新动态。
* 权威的作者团队
组织国家重点实验室和资深应用专家联手编著该套图书,融合丰富的教学经验与优秀的管理理念。
* 学习型案例设计
以技术的实际应用过程为主线,全程采用图解和同步多媒体结合的教学方式,生动、直观、全面地剖析使用过程中的各种应用技能,降低难度、提高学习效率。
为什么要写这样一本书
C语言是一门历史悠久、博大精深的程序设计语言。它对计算机技术的发展起到了极其重要的促进作用,而且这种促进作用一直在持续并将继续持续下去。它从产生之时就肩负了很多重要使命,开发操作系统、开发编译器、开发驱动程序,几乎可以解决计算机中的大部分问题。C语言几乎是每一个致力于程序设计人员的必学语言。但从学习之初,很多C语言的初学者都苦于找不到一本通俗易懂、容易入门和案例实用的参考书。通过本书的案例实训,读者可以很快地上手流行的工具,提高职业技能,从而帮助解决公司与求职者的双重需求问题。
本书特色
* 零基础、入门级的讲解
无论您是否从事计算机相关行业,无论您是否接触过C语言编程,都能从本书中找到最佳起点。
* 超多、实用、专业的范例和项目
本书在编排上紧密结合深入学习C语言编程技术的先后过程,从C语言的基本语法开始,逐步带领大家深入地学习各种应用技巧,侧重实战技能,使用简单易懂的实际案例进行分析和操作指导,让读者读起来简明轻松,操作起来有章可循。
* 随时检测自己的学习成果
每章首页中均提供了学习目标,以指导读者重点学习及学后检查。
大部分章节最后的“跟我学上机”板块,均根据本章内容精选而成,读者可以随时检测自己的学习成果和实战能力,做到融会贯通。
* 细致入微、贴心提示
本书在讲解过程中,在各章中使用了“注意”和“提示”等小贴士,使读者在学习过程中更清楚地了解相关操作、理解相关概念,并轻松掌握各种操作技巧。
* 专业创作团队和技术支持
无论您在学习过程中遇到任何问题,均可加入QQ群(案例课堂VIP)进行提问,专家人员会在线答疑。
超值赠送资源
* 全程同步教学录像
涵盖本书所有知识点,详细讲解每个实例及项目的过程及技术关键点,比看书更轻松地掌握书中所有的C语言编程知识,而且扩展的讲解部分可以使您得到比书中更多的收获。
* 超多容量王牌资源大放送
赠送大量王牌资源,包括本书实例源文件、精美教学幻灯片、精选本书教学视频、C语言标准库函数查询手册、C程序员职业规划、全国计算机等级考试二级C考试大纲及应试技巧、C程序员面试技巧、C常见面试题、C常见错误及解决方案、C开发经验及技巧大汇总等。读者可以通过QQ群(案例课堂VIP)获取赠送资源,还可以通过配套网站下载赠送资源。
读者对象
* 没有任何C语言编程基础的初学者;
* 有一定的C语言编程基础,想精通C语言开发的人员;
* 有一定的C语言基础,没有项目经验的人员;
* 正在进行毕业设计的学生;
* 大专院校及培训学校的老师和学生。
创作团队
本书由刘春茂和李琪编著,参加编写的人员还有蒲娟、刘玉萍、裴雨龙、展娜娜、周佳、付红、李园、郭广新、侯永岗、王攀登、刘海松、孙若淞、王月娇、包慧利、陈伟光、胡同夫、王伟、梁云梁和周浩浩。在编写过程中,我们尽所能地将最好的讲解呈现给读者,但也难免有疏漏和不妥之处,敬请不吝指正。
编 者
第3章 程序中的数据种类——数据类型
在C语言中,数据的基本类型一般分为整型与浮点型两种。在本章中,将对整型与浮点型两种基本数据类型进行讲解。
本章目标(已掌握的在方框中打钩)
了解什么是数制
掌握数制之间的转换
了解整型数据的存放形式
了解什么是整型变量的溢出
了解浮点型数据的存放形式
了解什么是浮点型数据的有效数字
了解字符型数据的存放形式
掌握如何对变量进行类型转换
3.1 数 制
生活中在计算比较复杂的运算时,人们常常使用计算机,但是实际上计算机的内部并不是使用人们常用的十进制,它的数据是通过0和1表示的,也就是二进制。当人们将十进制数输入计算机后,它通过转换为二进制进行运算,再把结果转换为十进制呈现。生活中使用十进制,逢十进一,在计算机中使用二进制,逢二进一,这种进位计数制的计数规则,就被称为数制。常见的数制有二进制、八进制和十六进制。
3.1.1
二进制
二进制数制的计数规则是逢二进一。在实际生活中所使用的计算机就是使用二进制的数制系统。其原因是计算机中使用的晶体管就好比是一个开关,使用0表示关闭,1表示开启,以这样的方式从0到1来计数。当然,计算机中不可能只存在两个晶体管,要进行更为复杂的运算,将会需要更多。
以2为基数,逢二进一,模拟计算机计数规则,就好比数数一样,但不同于十进制的是,数到1的时候就要进位,也就是:0、1、10(进位,等同于十进制的9~10)、11、100(等同十进制的99~100)、111、1000、1001…
3.1.2
八进制
八进制数制的计数规则是逢八进一,以0~7循环的方式计数,如:0、1、2、3、4、5、6、7、10、11、12…八进制每逢数到7的时候就要像十进制那样进位。在C语言中,通常使用以0打头的数字表示八进制,如“014”“027”等。
八进制广泛应用于计算机系统,如PDP-8、ICL 1900和IBM大型机使用的12位、24位以及36位,它们都是以八进制为基础。
3.1.3
十六进制
十六进制是以16为基数的计数系统,十六进制数制的计数规则是逢十六进一。与之前介绍的数制有所不同,十六进制是由0~9和A~F所组成的,其中A表示10,F表示15。它的计数过程为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F、10、11、12、13、14、15、16、17、18、19、1A、1B、1C…
在C语言中,通常使用“0x”来表示十六进制数,如“0x3F”等。
3.1.4
数制间的转换
有时根据实际的需要,可能要对数制进行相互转换。数制之间该通过什么方法进行转换呢?首先对数制的数位排列进行讨论。
1. 转换为十进制
以众所周知的十进制为例,它可以表示为每个数按位权(位权就是指进位制中每个固定位置所对应的单位值)展开后各个数位上的数字乘以对应数位的位权后再相加的形式。例如十进制数123可以表示为:
123=1×100 2×10 3×1
相当于:
123=1×102 2×101 3×100
也就是说十进制数由低位到高位每一位上的数依次乘以100、101、102、103…拓展到二进制、八进制和十六进制中去,则为:
(1) 二进制由低位到高位每一位上的数依次要乘以20、21、22…
(2) 八进制由低位到高位每一位上的数依次要乘以80、81、82…
(3) 十六进制由低位到高位每一位上的数依次要乘以160、161、162…
由上述讨论可得出各进制数转换十进制数的方法:每个数按位权展开后各个数位上的数字乘以对应数位的位权后再相加。
例如,将二进制数01100101转换为十进制数:
0×27 1×26 1×25 0×24 0×23 1×22 0×21 1×20=0 64 32 0 0 4 0 1=101
例如,将八进制数1506转换为十进制数:
1×83 5×82 0×81 6×80=512 320 0 6=838
例如,将十六制数2BF3转换为十进制数:
2×163 11×162 15×161 3×160=8192 2816 240 3=11251
2. 十进制转换为二进制
十进制转换为二进制的方法很简单,将十进制数除以2后取余数,再将这些余数按照逆序排列即可得到转换后的二进制数。
例如,将十进制数7转换为二进制:
7/2
余数为1;
3/2
余数为1;
1 余数为1;
按照逆序将余数进行排列获得转换后的二进制数为111。
3. 二进制转换为八进制
二进制转换为八进制的方法是将二进制数整数部分由最低有效位开始,小数部分由最高有效位开始,以三位为一组,缺位处用0补充,按照十进制的方法进行转化。
例如,将二进制数11001转换为八进制数:
三位一分组,缺位补0→011 001
011=0×22 1×21 1×20=0 2 1=3
001=0×22 0×21 1×20=0 0 1=1
所以转换为八进制后的数为31。
评论
还没有评论。