No.2
- 回答日時:
「絶対値に変換する」というコメントは正しくないですね。
たとえばmd5[i]の値が-3だったとしたら、nの値は絶対値の3ではなくて253になります。ANo.1の方が既に答えていますが、0xffとビットごとの論理積をとるのはbyte型(-128~+127)の値をint型の0~+255の範囲に変換するときの定石の書き方です。
この回答へのお礼
お礼日時:2012/01/23 23:46
> ANo.1の方が既に答えていますが、0xffとビットごとの論理積をとるのはbyte型
> (-128~+127)の値をint型の0~+255の範囲に変換するときの定石の書き方です。
お陰さまで納得できました。
ありがとうございます<(_ _)>
No.1ベストアンサー
- 回答日時:
前後がわからないとなんとも言えませんが、
MD5のメッセージダイジェストを取得するなら、
java.security.MessageDigestクラスで行うのが普通ですから、
取得したバイト配列を16進文字列化してたりしませんか?
Javaのbyteは、-128~+127の値を保持できます。
しかし、byteの演算(正確には、byte,char,shortの演算)は、
一旦intに変換されてから行われます。
例えば、0xffはbyteなら2進数で表すと、
11111111bですが、
intに変換されると
11111111111111111111111111111111b
になってしまいます。
10進数で表すと、byteでもintでも-1なんですがね。
これを0xff(11111111b)でandを取ると、
00000000000000000000000011111111b
になるのです。
おそらく、Integer.toHexStringあたりを使っているのではないかと思われますが、
以下のコードを試してみると理解できるかと思います。
byte b = (byte)0xff;
System.out.println(Integer.toHexString(b));
System.out.println(Integer.toHexString(b & 0xff));
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby プログラミング 3 2023/06/09 14:30
- 高校 対数方程式につきまして 4 2022/05/05 07:55
- C言語・C++・C# C言語:数値の桁数指定についての質問です。 8 2022/05/26 23:53
- Java 問題作成のWebアプリの作り方を教えてください 1 2022/11/26 22:01
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- システム CPUの問題について 2 2022/07/09 12:04
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- Excel(エクセル) エクセルのvlookupについて質問です 3 2023/01/05 15:15
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
int型のゼロ埋め
-
ダブルクォーテーションのrepla...
-
Path型をString型へ変換する(Java)
-
数字を読みに変換する方法について
-
Windows-31Jからutf-8への変換...
-
JavaのStringクラスに「外字」...
-
javascriptで文字列のsjis利用...
-
カタカナをローマジに変換する。
-
文字化けします。
-
UTF-8とUnicodeの互換性
-
VC++にてCString型のフルパスを...
-
なぜか + が半角スペースに変換...
-
C言語32bitから64bitの移行につ...
-
javaで入力したの半角カタカナ...
-
javaの初歩的な質問です。
-
文字コード変換について
-
Visual Studio 6.0でビルド可能...
-
半角の&(アンド)文字をサーブレ...
-
文字列の比較
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
ダブルクォーテーションのrepla...
-
Path型をString型へ変換する(Java)
-
カタカナをローマジに変換する。
-
int型のゼロ埋め
-
javascriptで文字列のsjis利用...
-
byte[] を long,float とかに...
-
C言語32bitから64bitの移行につ...
-
JavaのStringクラスに「外字」...
-
javaの初歩的な質問です。
-
Visual Basic でのコードをASCI...
-
UTF-8とUnicodeの互換性
-
文字列の比較
-
[Javascript]エンターキー押下...
-
下記問題の答えが"D"になる意味...
-
エクセルVBAで「〜」が表現でき...
-
byte配列をImageに変換する
-
javaで「全角が含まれているか...
-
IBM漢字コード⇒SJIS変換方法
-
Windows-31Jからutf-8への変換...
おすすめ情報