本文整理了各种编程语言的实用技巧。

C 语言 - 位操作

提取高八位和低八位

在嵌入式开发中,经常需要从一个字(word,16位)中提取高八位和低八位:

1
2
3
4
5
6
7
8
// 假设 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 位

参考: 开源中国 - C语言中求一个字的高八位和低八位


Java - 数学函数

Math.round() 四舍五入

1
2
3
4
5
6
7
8
// 基本用法
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() 对负数的处理是”四舍六入五取偶”,与一般的四舍五入略有不同。

参考: CSDN - java Math.round()用法


Python - 模块导入

相对路径导入问题

常见错误no module named xxx

原因:使用相对路径导入的文件,不能再当作主文件执行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 项目结构
# 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 # ✓

解决方案

  1. 使用 python -m 方式运行模块
  2. 在 main.py 中导入后执行
  3. 使用绝对导入代替相对导入

参考: CSDN - 使用相对路径进行导入的文件