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

如何使用C#将int转换为仅使用低位4位的字节?,c#,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#?int=>字节中实现这一点: int value = 0x51f1; byte s = (byte)(value & 0xf); byte r = (byte)(value>>4 & 0xf); byte

我在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#?

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);
字节=>int:

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

int value=pbyte[]bArray=System.BitConverter.GetBytes(i)

卢塞罗的答案被修改为在一个具有更长整数的循环中工作

    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;
    }
公共静态字节[]intToBytesV2(ulong l)
{
字节[]字节=新字节[8];
对于(int i=0;i<8;i++){
字节[i]=(字节)(l>>(i*4)和0xf);
}
返回字节;
}

pom=)

这将获得字节,但不会进行掩蔽。为之前的错误道歉-我想我误解了这个问题。没问题!然而,有一个问题,+优先于