そのため、単純な XOR 暗号化を実行するミニアプリを作成する必要がある就職の面接のテストを受けなければならず、この質問に出くわしました。FileInputReader を使用して各バイトを取り込み、キーを使用して XOR 演算を実行し、結果を FileOutputStream にプッシュしました。これが私が考えさせられたものです。
FileInputStream は、32 ビットの符号付き型である int を返します。1 バイトしか受信しない場合は、「バイト」型にキャストできます。FileInputStream は、EOF に達した場合も -1 を返します。しかし、2 の補数バイナリでは -1 == 0xff であり、読み取ったバイトが EOF ではなく、実際に 0xff である場合はどうなるでしょうか?
0xff は、特別な場合 (EOF など) を除いて数学的に返されないバイトですか? それとも、これは、読み取っているデータによっては考慮しなければならない状況ですか?