2

次のコードでは、intArray [i]はピクセルのRGB値を16進形式(eg:0xffff0000)で格納します....メソッドhsvToRgb()はbakにRGBの整数値(eg:15777252)を与えますが、rgb値を変更後の元の16進形式。2行目はそれを示していますが、その文字列....この文字列値を配列に格納するにはどうすればよいですか?... 私を助けてください。

       int disco = hsvToRgb(hsv);

       hexColor = String.format("0x%06X", (0xffffff & disco));
       intArray[i] = Integer.valueOf(String.valueOf(disco), 16);
4

1 に答える 1

7

「16進形式」の整数と「10進形式」の整数のようなものはありません。値のビット/バイト表現は同じです。たとえば、10進値15,777,252は16進値0xF0BDE4です。(Googleを使用して変換できます:「15777252inhex」を検索してください)。

disco値を直接使用できます。16進表現で印刷する場合は、を使用しますInteger.toHexString()

フォーマットについて。このように考えてください...コンピュータは値を一連のビットとして表します。例として、乱数を選び、8ビットを使用して表現してみましょう01110101。大きな数値を表すためにビット文字列を使用すると、非常に速く長くなるため、16進数がよく使用されます。同等の16進数は次のとおり65です。慣例により、通常、値の前0xに16進数の場合があります。それは私たちに与え0x65ます。ただし、プログラマー以外の人は、(16進数ではなく)10進数でより自然に対処する傾向があります。10進数の同じ数はです101

あなたはいくつかのコードでこれを見ることができます:

final int value = 0x65;                            // we can declare it in hex
final int sameValue = 101;                         // or in decimal

System.out.println(value);                         // output in base 10; prints "101"
System.out.println(Integer.toHexString(value));    // output in base 16; prints "65"
System.out.println(Integer.toBinaryString(value)); // output in base 2; prints "1100101"

System.out.println(""+(value == sameValue));       // prints "true"
于 2012-05-08T00:08:45.260 に答える