yupanzi

编程语言杂项技巧

· 2 分钟阅读

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

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 位

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


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() 对负数的处理是”四舍六入五取偶”,与一般的四舍五入略有不同。

参考: CSDN - java 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  # ✓

解决方案

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

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

相关文章