编程语言杂项技巧
本文整理了各种编程语言的实用技巧。
C 语言 - 位操作
提取高八位和低八位
在嵌入式开发中,经常需要从一个字(word,16位)中提取高八位和低八位:
// 假设 xxx 是一个 16 位的值
word value = xxx;
// 提取低八位(取低 8 位)
byte low = (byte)((word)(value) & 255); // 或 & 0xFF
// 提取高八位(右移 8 位)
byte high = (byte)((word)(value) >> 8);
原理说明:
& 255(即& 0xFF):保留低 8 位,高位清零>> 8:右移 8 位,原来的高 8 位变成低 8 位
Java - 数学函数
Math.round() 四舍五入
// 基本用法
Math.round(3.4); // 返回 3
Math.round(3.5); // 返回 4
Math.round(-3.5); // 返回 -3(注意负数的处理)
// 保留小数位数
double value = 3.14159;
double rounded = Math.round(value * 100) / 100.0; // 保留两位小数:3.14
注意:Math.round() 对负数的处理是”四舍六入五取偶”,与一般的四舍五入略有不同。
Python - 模块导入
相对路径导入问题
常见错误:no module named xxx
原因:使用相对路径导入的文件,不能再当作主文件执行。
# 项目结构
# project/
# main.py
# package/
# __init__.py
# module_a.py
# module_b.py
# module_b.py 中使用相对导入
from . import module_a # 相对导入
from .module_a import func # 相对导入
# 错误:直接运行 module_b.py 会报错
# python package/module_b.py # ❌ 会报 no module named 错误
# 正确:从项目根目录运行
# python -m package.module_b # ✓
解决方案:
- 使用
python -m方式运行模块 - 在 main.py 中导入后执行
- 使用绝对导入代替相对导入