UEを使用する人は、16進数でファイルを表示するのが非常に便利です。なぜピンチ?ファイルを暗号化、トランスコード、およびエンコードする場合、01バイナリのバンチがポップアップして確認します。結局のところ、16進表示ファイルは短くて便利です。少なくとも、中学校の入学試験と大学入学試験中にカードを適用しました。もちろん、中学校の入学試験や大学の入学試験で1248を描くことができる子供用の靴は、彼らが間違いなくプログラマーの「神聖な」職業になる可能性がないことを一目で伝えることができます...
以前にScience Parpationization Innovation Competitionに参加しようとしたため、その時にDongdongを行い、バイトストリームのファイルを読み、バイナリ、クワッド、および16進文字列に変換し、すぐにコンソールに出力しました。次に、各ビットの値に応じて、それぞれ2色、4色、16色のマトリックスで表示されます。これを書く目的は、カメラを使用してそれを識別し、バイトストリームに復元してファイルに書き込むことです。このプログラム設計は、2つの痛みを伴う事実のハイブリッドの産物です。1。メディアおよびUSBデバイスを介してファイルを転送する必要はありません。この質問を試して、カメラまたはスピーカーを使用してファイルを送信して、誰が迅速に送信できるかを確認できます。
もちろん、最も重要な部分は、ファイルのバイトストリームが8ビットバイトに読み取られ、2つの16進数に表示されることです。 BYTEがINTに変換され、補数コードに遭遇する可能性があるため、最初にメソッドを統合することが最善です。
コードコピーは次のとおりです。
int result = bytes&0xff;
この文を過小評価しないでください、それは実際に非常に興味深いです。 Shenmaに0xffを追加すると、それが正の数になりますか? 0xffは1なので、動作に変更がないという意味ではありませんか?ハンフ、誰かがこのような問題があるなら、私にこれを尋ねました。バイトの範囲は-128〜127であり、0〜255ではなく、バイトB = -42に置き換えてはなりません。
これを作成してn桁の文字列に変換することは難しくありません。慎重に考えると、この機能を直接もたらす馴染みのあるがなじみのないクラスはありますか?そうです、整数を使用しているだけです!しかし、心配しないでください、それを使用する前に、あなたはこのintでいくつかの小さな動きをしなければなりません。
コードコピーは次のとおりです。
(バイト&0xff) + 0x100
理由を知っていますか?これは+256です。より直感的に見るために、前に1つ追加するだけです。 intがstringに変換された場合、1ビットしかない可能性があります。つまり、16進数が16進数に変換されたときにバイトが失われた場合、プログラム全体が完全に置き忘れられますか?安全になるためには、3つを統一する方が良いでしょう。
これを試して、バイトが16進数に変更された後、すべての出力を確認できます
コードコピーは次のとおりです。
public static void main(string [] args){
for(int i = -128; i <128; i ++){
バイトb =(byte)i;
System.out.println(integer.toString((b&0xff)、16));
}
}
これを見て、あなたは思いますか:なぜあなたはそんなに愚かなのですか? for loopがバイトに変更されなかったのはなぜですか?わかりました、あなたはそれを試すことができます、私はとにかく試しません...
したがって、最終的にバイトを2ビットヘキサデシマに変換するコードは
コードコピーは次のとおりです。
integer.tostring((bytes&0xff) + 0x100、16).substring(1);
バイナリ、クワッド、オクタルの場合、それらはすべて同じなので、例を挙げません。コードの1つの文で実装されています、それは驚くべきことです...
次に、マトリックス格子を使用してフレームごとにファイルを表示し、カメラを使用して認識色をキャプチャし、文字列を変換し、色をフィードバックして、認識が完了したことを相手に知らせ、次の画像を交換します。 ..このサイクルは、ファイルが終了するマトリックス格子までです。私はコードのこの部分を投稿することはありません、全体のプロセスはyyによって豊かな想像力を持って生成できます...
その後、文字列はバイトストリームに戻ります。
コードコピーは次のとおりです。
(byte)integer.parseint(string、16)
ビット操作は必要ありません。結果を生成し、バイト配列に入れて、FileOutputStreamの書き込みで繰り返し書きます!入力と出力のストリームをオフにすることを忘れないでください