第3章:处理不同类型的数据
今天,我们来探索计算机的“储物间”,看看它是如何聪明地存放和处理各种各样的数据的!
整数家族
认识不带小数的数字,看看它们的大小和限制。
字符与小数
揭开字母和带小数点数字的存储秘密。
计算工具
学习C++的加减乘除,发现整数除法的奇特之处。
环节一:变量基础和整数类型
“魔法盒子”不仅能装东西,还有不同的大小和规则!
📦 整数家族 (int, short, long)
电脑用不同大小的“盒子”来装整数。int 是最常用的标准尺寸。我们可以用 sizeof 来测量它们占用的“空间”。
🔒 上锁的常量 (const)
有些值我们不希望被改变,比如一周有7天。用 const 关键字给“盒子”上把锁,它的值就永远不能被修改了。
🔄 容量限制与溢出
每个盒子都有容量上限。如果一个只能存正数的盒子 (unsigned) 里的数字加到最大再加1,会发生什么?就像汽车的里程表一样,它会“翻转”回起点!
环节二:字符和浮点数
除了数字,计算机还能处理文字和带小数点的数。
🤔 字符的秘密 (char)
char 类型的“盒子”表面上装的是一个字符,比如 'A',但它的“内心”其实是一个数字(ASCII码)!cout 很聪明,看到 char 就知道要显示字符而不是数字。点击下方的卡片揭晓秘密!
💧 小数世界 (double)
double 类型的“盒子”专门用来装带小数点的数。它比 float 更精确,就像一个更精密的量杯。在科学计算中,精度非常重要!
精度对比:10.0 / 3.0
float: 3.3333332538604736...
double: 3.3333333333333335...
可以看到,double 在小数点后能保持更长时间的准确性。
环节三:算术运算与类型转换
掌握C++的计算工具,特别是整数除法的“小脾气”。
🧮 整数除法大揭秘
当两个整数相除时,C++会毫不留情地“砍掉”小数部分!而取模(%)运算,就是专门捡起被丢掉的“余数”的工具。
✨ 数据形状的改变
当不同类型数据一起运算时,小类型会自动“升级”为大类型。我们也可以用 `(类型)` 来强制“变身”,但这可能会丢失精度!
int a = 1;
double b = 2.5;
// 结果是 3.5 (double类型)
cout << a + b;
// 强制变身:double的小数部分被砍掉
double price = 3.99;
// 结果是 3 (int类型)
int dollars = (int)price;
环节四:总结与编程挑战
你已经学会了处理数据的核心技巧!现在来试试这些挑战任务吧。
练习 1:身高单位换算
任务:
编写一个程序,要求用户输入一个整数(身高,单位为英寸)。程序将身高转换为英尺和英寸(1 英尺 = 12 英寸)。使用 const 定义转换因子。
💡 提示:想想哪个运算可以得到“英尺”,哪个运算可以得到剩下的“英寸”?
点击查看参考答案
练习 2:角度单位转换
任务:
编写一个程序,要求用户输入一个角度的度、分、秒。程序将该角度转换为纯粹的度(包含小数部分)。 (1 度 = 60 分, 1 分 = 60 秒)
💡 提示:最终结果是小数,应该用什么类型的变量来存储呢?
点击查看参考答案
练习 3:时间单位拆分
任务:
编写一个程序,要求用户输入总秒数(使用 long 变量)。程序将这些秒数转换为天、小时、分钟和剩余秒数。
💡 提示:这是一个连锁反应!先从总秒数里算出“天”和“剩下的秒”,再用“剩下的秒”去算“小时”和“更剩下的秒”...以此类推。