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);
相关推荐
Dontla11 小时前
Multi-Agent多智能体项目如何从MVP过渡到生产项目?
开发语言
兰令水11 小时前
topcode【随机算法题】【2026.5.20打卡-java版本】
java·开发语言·算法
我还记得那天11 小时前
C语言递归实现汉诺塔问题
c语言·开发语言
魔法阵维护师11 小时前
从零开发游戏需要学习的c#模块,第十三章(rpg小游戏入门,下篇,地图敌人与战斗触发)
学习·游戏·c#
不吃土豆的马铃薯11 小时前
Spdlog 入门:日志记录器与日志槽基础详解
服务器·开发语言·c++·c·日志·spdlog
凯瑟琳.奥古斯特11 小时前
传输层核心功能解析
开发语言·网络·职场和发展
Fuyo_111911 小时前
C++中的活字印刷术——模板·初阶
开发语言·c++·笔记
在角落发呆11 小时前
跨越网络鸿沟:传统文件传输与现代内网穿透的奇妙交响
开发语言·php
Season45011 小时前
C++之模板元编程(前置知识 constexpr)
开发语言·c++
AI玫瑰助手11 小时前
Python运算符:比较运算符(等于不等等于大于小于)与返回值
android·开发语言·python