String str="0xff";怎么得到整形的 0xffjava中的 Integer.parseInt() 貌似不行

解决方案 »

  1.   

    Integer.parseInt(String srt, int jinzhi)Integer.parseInt(String srt) 是默认的10进制。换成16进制就好了
      

  2.   

    String str="FF";
    System.out.println(Integer.valueOf(str,16).toString() );
      

  3.   

    回楼上的 
    Integer.valueOf(str,16) 成 10进制的  但是我现在要的是16进制整形的 
    如果是 Integer.toHexString(Integer.valueOf(str,16)) 它得到的还是16进制字符串型的 
    要16进制整形的目的是为了 再放入 整形数组
      

  4.   

    楼主 你好好去补基础吧!  不管16、8、2进制,都只是表现形式,存在内存或硬盘中的都是二进制的,
    Integer.valueOf(str,16)已经能把16进制表现形式的str转化为int,你要的不就是这个吗?
    数值对于int的才是唯一的属性。  不同的进制只是外部的表现形式,内部存储都是2进制。
      

  5.   

    最终的存储是用二进制的
    但是 现在是这种情况 有一个int型数组 里面的内容格式是 0xRRGGBB  16进制的颜色。
    现在想把其中的某种颜色修改后,再存入数组 。我的做法是先把16进制的转成字符串 得到 “0xRRGGBB” 的形式,再进行切割 转换成10进制加减 
    计算完之后 得到一个新的 “0xRRGGBB” 数值。 问题就再这里了,新的数值是拼接起来的,为字符串型。 无法存入 int型数组了。所以问题就是 “0xGGRRBB” 怎么放入int型数组的问题。
      

  6.   

    16进制最大的字符 是F, G R 是不可能存在的。一旦使用正确的进制把 str 转化为int,数值就产生了。楼主,你的表达存在一定的问题,去看下16、8、2进制基础可能会好些。
    你存放颜色使用这种方式无非是想省内存,感觉完全没有必要这样去做。
      

  7.   

    多谢大家的回答,16进制中最大的确实是F.
    来听下我的需求吧.
    1.我从一张图片中获得ARGB(int型数组)其中的数据格式是0xRRGGBB 比如 0x8965AF
    2.其中的AF肯定表示的是绿色的值,我现在如果想修改这个绿色的值,肯定是进行切割得到 AF 然后 进行相关的处理.
    3.处理之后得到新的值 比如 是“0x8965FF” (这个值是由“ox8965” 和 “FF” 拼接而成 为字符串型)。
    4.最后将 得到的 ”0x8965FF” 转成 int型放入 int型数组 (问题就在这里 怎么得到 int型的 0x8965FF) 调用 方法setARGB(int[]) 保存.int型数组中的格式只能是 0xRRGGBB 16进制的格式 
      

  8.   

    楼主! 这个是颜色数值和0xXXXX表达方式的转化问题,这个要看0xXXXX是如何转化为int的值的才行。这个应该属于颜色的驱动问题了,即负责颜色在内存中的表达方式的转化,在网上搜下这样的文章看下吧,
    应该比较简单的。这个和16进制就没关系的。
      

  9.   

    楼主,使用0xRRGGBB的方式表达颜色,你没有理解里面的原理,你根本不用进行拆分。这种方式表达颜色是将整型的16-23位作为红色,8-15位作为绿色,0-7位作为蓝色。你要是想更改颜色的话,只需要对Integer.parseInt(x,16)出来的整型数值做位运算操作即可,比如0xff0000&1即可表示蓝色值加1。