c# - 如何将一个字节分成两部分并读取它?
问题描述
我在给我的任务中遇到了这个问题。情况如下:
如果用户单击“Vat First”,则值为 0。否则,值为 1。
然后,在这个文本框中,
允许的值范围是 0 到 15。
然后示例值保存如下:
“01” = 因为它首先是缸和 1mm Z 轴向上高度。
“11” = 平台优先,Z 轴向上 1mm
"015" = 先瓮,15mm
“115” = 平台优先,15mm
之所以这样保存,是因为它是给我的文件协议,我对此无能为力。它在那里说该值为 1 字节值的“平台移动顺序和 Z 轴向上高度”。
我现在的问题是之后读取结果以将其重新加载到应用程序中。我怎么知道它是否只使用 3 位或 2 位数字,因为 int 的返回忽略了开头的 0。"015" = "15" 所以我的应用程序可能会将其视为平台优先,5 毫米,而不是增值税优先,15 毫米。
编辑:所以我刚刚意识到感谢@BenVoigt,它被保存到一个字节中并且它有 8 位。根据给我的协议,前 4 位是移动顺序(0 或 1),其余的是 Z 轴向上高度(0-15)。对于真正的问题,如何将字节分成 4 位并获取值?
解决方案
前 4 位是移动顺序(0 或 1),其余的是 Z 轴向上高度(0-15)。
这是一个简单的位移任务。
Order = Combined >> 4;
Height = Combined & 0x0F;
并节省:
Combined = (Order << 4) | Height;
和是位移运算符<<
。>>
推荐阅读
- python - zapier - IOError:[Errno 30] 只读文件系统:'products.cvs'
- excel - 循环通过宏调用的 Excel 2013 宏仅适用于一张工作表
- sql - Hadoop SQL - Impala 和计算字段
- reactjs - React-Table 从状态打开子组件
- reactjs - 如何使用 TypeScript 正确键入 React 连接的组件
- php - Ajax Zip 文件下载 - WordPress Guru
- excel - 构建一个直到循环以循环一列直到空单元格
- javascript - 是否可以存根函数以外的东西?
- python - FutureWarning:pandas.tslib 已弃用,将在未来版本中删除
- java - JVM 进程内存使用与 Yourkit 分析器不匹配