我的第二堂C++课程笔记:进制转换与函数使用

今天是我在海南大学计科专业上第二堂C++课程,我学习了进制转换以及如何自己写函数。把今天的学习内容整理一下,方便自己复习,也希望对别人有帮助。


一、进制转换

在学习进制转换的时候,我发现老师讲的“口诀式记忆法”特别实用,我把它总结如下:

二进制与八进制/十六进制

  • 二进制转八进制
    口诀:“三三分”
    原理:整数部分从右往左每三位一组,小数部分从小数点向右每三位一组,不够补0。
    例子:

    • 1101 → 分组 001 101 → 八进制 15
    • 小数例:10.0111 → 分组 010 . 011 100 → 八进制 2.34
  • 二进制转十六进制
    口诀:“四四分”
    原理与二转八类似,但每组四位,小数部分同样补齐四位即可。

十进制与其他进制

  • 十进制转其他进制(整数部分)
    口诀:“不断除进制,余数倒读”
    方法:用十进制数除以要转化的进制数,不断取余数,最后把余数倒着读就是答案。
    例子:十进制 666 → 八进制:
    666 ÷ 8 = 83 余 2
    83 ÷ 8 = 10 余 3
    10 ÷ 8 = 1 余 2
    1 ÷ 8 = 0 余 1
    → 八进制 1232

  • 十进制转其他进制(小数部分)
    方法:小数部分 × 进制数,取整数部分作为结果,剩下的小数再乘以进制,一直循环。
    注意:小数点后算的整数要正着读
    例子:十进制 3.14 → 八进制:
    整数部分:
    3 ÷ 8 = 0 余 3 → 八进制 3
    小数部分:
    0.14 × 8 = 1.12 → 取整数 1
    0.12 × 8 = 0.96 → 取整数 0
    0.96 × 8 = 7.68 → 取整数 7
    然后一直算下去…..
    → 八进制约 3.107

  • 其他进制转十进制(整数部分)
    口诀:“按权展开”
    方法:每位 × (进制^位数),然后相加。
    例子:八进制 567 → 十进制
    8^2 + 6×8^1 + 7×8^0 = 320 + 48 + 7 = 375
    → 十进制 375

  • 其他进制转十进制(小数部分)
    方法:与整数部分相同,小数点后面为负位数
    例子:十六进制 1.23 → 十进制
    16^0 + 2×16^-1 + 3×16^-2 = 1 + 0.125 + 3/256 ≈ 1.1367
    → 十进制约 1.1367


二、C++函数使用

今天还学习了如何写函数。我的例子是写一个比较两个数大小的函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;

int M(int x, int y) {
if (x > y)
return x; // 返回较大值
else
return y;
}

int main() {
int a, b, m;
cout << "输入值1:";
cin >> a;
cout << "输入值2:";
cin >> b;

m = M(a, b); // 调用函数得到最大值
cout << "最大值为: " << m << endl; // 输出最大值
}


通过今天的学习,我对进制转换的口诀和函数使用有了更清晰的理解。以后遇到类似题目,再也不怕迷糊了。