バイト配列のコンテンツの値を増やしたくありません。
たとえば、私の配列で値を取得した場合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++ます。どちらもインクリメントしますが、++xx+1 をx++返しますが、x を返します。
これはあなたの場合、ByteArray[i] を ByteArray[i] に設定すると、インクリメントはイライラして上書きされます。
ByteArray[i]++;代わりに使用してください。
そして、そのようなインクリメントのリターンを使用するときはいつでも、使用するバリアントについて考えてください。