如何使用C#将int转换为仅使用低4位的字节?

时间:2012-08-04 16:04:38

标签: c#

我在C#中遇到转换问题。基本上,我正在尝试将整数转换为字节,以便我们只使用低4位。示例255 = 0F 0F或:

0xpqrs = 0p 0q 0r 0s

5*16*16*16 + 1*16*16 + 15*16 + 1  = 05 01 0f 01

如何在C#中实现它?

3 个答案:

答案 0 :(得分:2)

int =>字节数:

int value = 0x51f1;
byte s = (byte)(value & 0xf);
byte r = (byte)(value>>4 & 0xf);
byte q = (byte)(value>>8 & 0xf);
byte p = (byte)(value>>12 & 0xf);

bytes => INT:

int value = p<<12 | q<<8 | r<<4 | s;

答案 1 :(得分:0)

Lucero的答案被修改为在整数较长的循环中工作。

    public static byte[] intToBytesV2(ulong l)
    {
        byte[] theBytes = new byte[8];
        for (int i = 0; i < 8; i++) {
            theBytes[i] = (byte)(l >> (i * 4) & 0xf);
        }
        return theBytes;
    }

pom =)

答案 2 :(得分:-1)

byte [] bArray = System.BitConverter.GetBytes(i);