如何将Hex字符串存储在android中的Integer变量中???

Cha*_*e90 2 java rgb android image-processing

在下面的代码中,intArray [i]以十六进制格式存储像素的RGB值(例如:0xffff0000)....方法hsvToRgb()给bak一个RGB的整数值(例如:15777252),但我需要返回rgb值更改后的原始十六进制格式.第二行给了我但是它是一个字符串....我该怎么做才能将这个字符串值存回数组?... 请帮我.

       int disco = hsvToRgb(hsv);

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

Gre*_*pff 7

没有"十六进制格式"整数与"十进制格式"整数之类的东西.值的位/字节表示相同.例如,十进制值15,777,252是十六进制值0xF0BDE4.(您可以使用Google进行转换:搜索"15777252 in hex").

您可以disco直接使用该值.如果要以十六进制表示形式打印出来,请使用Integer.toHexString().

关于格式.可以这样想......计算机将价值表示为一系列比特.举例来说,让我们选择一个随机数并用8位表示:01110101.使用位串来表示更大的数字将非常快地变长,因此经常使用十六进制.十六进制等价物是:65.按照惯例,我们通常在值之前加上0x十六进制.这给了我们0x65.然而,非程序员倾向于在基数10中更自然地处理(而不是基数16).基数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"
Run Code Online (Sandbox Code Playgroud)