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);
相关推荐
Tony Bai14 小时前
高并发后端:坚守 Go,还是拥抱 Rust?
开发语言·后端·golang·rust
wjs202415 小时前
Swift 类型转换
开发语言
秃了也弱了。15 小时前
python实现定时任务:schedule库、APScheduler库
开发语言·python
weixin_4407305015 小时前
java数组整理笔记
java·开发语言·笔记
Thera77715 小时前
状态机(State Machine)详解:原理、优缺点与 C++ 实战示例
开发语言·c++
niucloud-admin16 小时前
java服务端——controller控制器
java·开发语言
夏幻灵17 小时前
JAVA基础:基本数据类型和引用数据类型
java·开发语言
cike_y17 小时前
Spring-Bean的作用域&Bean的自动装配
java·开发语言·数据库·spring
十八度的天空18 小时前
第01节 Python的基础语法
开发语言·python
我是唐青枫18 小时前
深入理解 C#.NET Interlocked.Increment:原子操作的核心
c#·.net