0

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# で実装するにはどうすればよいですか?

4

3 に答える 3

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);

バイト => 整数:

int value = p<<12 | q<<8 | r<<4 | s;
于 2012-08-04T16:08:36.127 に答える
0

ルセロの回答は、より長い整数のループで機能するように変更されました。

    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;
    }

ポン=)

于 2012-08-04T18:14:42.680 に答える
-1

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

于 2012-08-04T16:14:38.577 に答える