バイト配列のコンテンツの値を増やしたくありません。
たとえば、私の配列で値を取得した場合1100001
、配列の内容が表示されるように、この値をインクリメントする効果的な方法は何ですか1100010
。
以下のようになるかと思ったのですが、うまくいきません。
ByteArray[i] = ByteArray[i]++;
前もって感謝します
バイト配列のコンテンツの値を増やしたくありません。
たとえば、私の配列で値を取得した場合1100001
、配列の内容が表示されるように、この値をインクリメントする効果的な方法は何ですか1100010
。
以下のようになるかと思ったのですが、うまくいきません。
ByteArray[i] = ByteArray[i]++;
前もって感謝します
ByteArray[i] = ByteArray[i]++;
これは次と同等です。
byte temp = ByteArray[i];
ByteArray[i]++;
ByteArray[i] = temp;
つまり、値を増やしてから、古い値に置き換えます。
あなたが望むのはどちらかです
ByteArray[i]++;
また
ByteArray[i] = ByteArray[i] + 1;
x++
の元の値を返しますx
。
次に、元の値を配列スロットに割り当てます。
インクリメント演算子を読み込む必要があります。 と が++x
ありx++
ます。どちらもインクリメントしますが、++x
x+1 をx++
返しますが、x を返します。
これはあなたの場合、ByteArray[i] を ByteArray[i] に設定すると、インクリメントはイライラして上書きされます。
ByteArray[i]++;
代わりに使用してください。
そして、そのようなインクリメントのリターンを使用するときはいつでも、使用するバリアントについて考えてください。