位操作、随机数生成与结构体的深入解析
1. 位操作相关知识
位操作在编程中是非常基础且重要的部分,不同的指令集有不同的位操作指令。
1.1 常见指令集的移位指令
- x86 :对于无符号值使用
SHR/SHL
指令进行移位操作,对于有符号值则使用SAR/SHL
指令。 - ARM :无符号值的移位用
LSR/LSL
指令,有符号值用ASR/LSL
指令。并且,有些数据处理指令还可以添加移位后缀。
1.2 检查特定位
- 编译阶段已知的位 :
- C/C++ 代码示例 :
if (input&0x40)
...
- **x86 汇编代码示例**:
TEST REG, 40h
JNZ is_set
; bit is not set
- **ARM(ARM 模式)汇编代码示例**: