C#中移位运算

基础知识:

在ubuntu 和windows 系统中目前都是小端序列,因此诸如以下形式: 0x12345679

小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中;

cpp 复制代码
// 字节排列是小端顺序
rawdata[7] = (byte)(device.KeyBoard.CarForwardOrBack.Value & 0xFF);
// 这里如果写作(byte)((device.KeyBoard.CarForwardOrBack.Value & 0xFF) >> 8)最后结果就是0x00
rawdata[8] = (byte)((device.KeyBoard.CarForwardOrBack.Value & 0xFF00) >> 8);
//int A = (rawdata[7] | (rawdata[8] << 8));
rawdata[9] = (byte)(device.KeyBoard.CarLeftOrRight.Value & 0xFF);
rawdata[10] = (byte)((device.KeyBoard.CarLeftOrRight.Value & 0xFF00) >> 8);
//int B = (rawdata[9] | (rawdata[10] << 8));

注意: 对于C#来说,必须是这样进行移位操作,否则会出现只返回8位0的情况;

cpp 复制代码
rawdata[8] = (byte)((device.KeyBoard.CarForwardOrBack.Value & 0xFF00) >> 8);
相关推荐
诺伦12 小时前
Rust 错误处理实战:从 unwrap 到优雅 Result 的进阶之路
开发语言·后端·rust
caimouse12 小时前
ReactOS 窗口系统分析(14):计时器/属性/加速键/热键 — timer.c + prop.c + accelerator.c + hotkey.c
c语言·开发语言·reactos
circuitsosk12 小时前
Python 模块与包管理:import 机制、虚拟环境与 pip 完全指南
开发语言·python·pip·依赖管理·模块与包
就叫飞六吧12 小时前
两道门:X-Frame-Options 和 SameSite 到底谁管什么
开发语言·chrome·ai编程
fl17683113 小时前
基于C#WPF实现的内存加速球清理类似360加速球内存清理
开发语言·c#·wpf
weixin_4407305013 小时前
python+request实现接口-小结
开发语言·python
ZJU_统一阿萨姆13 小时前
【算子开发】扫描(Scan)与前缀和
开发语言·arm开发·架构·系统架构·硬件架构
-凌凌漆-13 小时前
【C语言】结构体typedef struct与struct的区别
c语言·开发语言
for_ever_love__13 小时前
PySpark学习: 数据输出
开发语言·python·学习·spark
言乐614 小时前
Python实现自动拉人脚本示例
开发语言·windows·python·django·pygame