繁体   English   中英

c#如何将两个4位数字存储到一个字节中

[英]c# how to store two 4 bit numbers into one byte

所以我有两个 4 bits数字(在 0 和 15 之间):

int a = 1;
int b = 15;

我想将它们存储到 1 byte

这是我尝试过的:

byte[] bytesA = BitConverter.GetBytes(a);
byte[] bytesB = BitConverter.GetBytes(b);
byte a = bytesA[0];
byte b = bytesB[1];

一个字节是 8 位,并且您有 2 个 4 位值,您需要移动其中一个值以占用结果字节的高 4 位,如下所示:

byte ab = (byte)((a << 4) | (b & 0xF));

为了得到aab

byte a = (byte)((ab >> 4) & 0xF);

为了获得bab

byte b = (byte)(ab & 0xF);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM