0

これがシナリオです。正と負の両方の数値のリストがあります。そしてビットの別のリスト(0と1)。これらのビットを、最初のリストのすべての数値のLSBに置き換える必要があります(つまり、数値の-)。

for (int k = 0; k< 8; k++)
{
    i1 = index[k, 0];
    i2 = index[k, 1];
    string str1 = Convert.ToString(d[i1,i2], 2);
    str1 = str1.Substring(Math.Max(str1.Length - 8, 0)).PadLeft(8, '0');
    str1[0] = Tnbinary[k];
}

str[0]を変更することはできません-読み取り可能であるとだけ言っています。何が間違っているのでしょうか。また、番号を変更するにはどうすればよいですか。

4

2 に答える 2

3

ビット操作を使用できます。

byte b = -3;
byte b0 = (byte)(b & 254);   // Make LSB 0
byte b1 = (byte)(b | 1);     // Make LSB 1

byte符号付きバイトを使用している場合は、 sbyte.

于 2012-12-11T10:51:55.943 に答える
1

これが本当に 1 バイトの場合、ビット演算を行わない理由は次のとおりです。

new_byte = (old_byte & ~1) | new_bit
于 2012-12-11T10:51:55.760 に答える