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);
相关推荐
凤年徐几秒前
Work-Stealing 调度算法:Rust 异步运行时的核心引擎
开发语言·算法·rust
JS.Huang3 分钟前
【JavaScript】构造函数与 new 运算符
开发语言·javascript·原型模式
lqj_本人6 分钟前
【Rust编程:从小白入坑】Rust所有权系统
开发语言·jvm·rust
疏狂难除20 分钟前
【Tauri2】050——加载html和rust爬虫
开发语言·爬虫·rust·spiderdemo
Zhangzy@2 小时前
仓颉的空安全基石:Option类型的设计与实践
java·开发语言·安全
oioihoii2 小时前
Rust中WebSocket支持的实现
开发语言·websocket·rust
明道源码4 小时前
Kotlin Multiplatform 跨平台方案解析以及热门框架对比
开发语言·kotlin·cocoa
fie88894 小时前
C#实现连续语音转文字
开发语言·c#
一念&6 小时前
每日一个C语言知识:C 头文件
c语言·开发语言·算法
DARLING Zero two♡7 小时前
仓颉GC调优参数:垃圾回收的精密控制艺术
开发语言·仓颉