【问题标题】:How to edit the values of hexadecimal integer in Java?如何在 Java 中编辑十六进制整数的值?
【发布时间】:2021-11-19 23:25:00
【问题描述】:

我正在尝试在 Java 中编辑十六进制值。

编辑:顺便说一下,十六进制不仅包含 RGB,还包含 alpha。

例如:

int j = 0xAARRGGBB

创建整数后如何更改AARR 的值?

我在 Google 上的任何地方都找不到这个问题的答案。

非常感谢您的帮助!

【问题讨论】:

  • 您可能想提到您正在讨论 RedGreenBlue 与 Alpha 颜色表示。乍一看,您的示例数据似乎是无效的十六进制数据。
  • 行了!谢谢!

标签: java string colors integer


【解决方案1】:

我想这就是你所需要的一切

public static int toARGB(int a,int r,int g,int b){
  return ((((((a << 8) | r) << 8) | g) << 8) | b);
}

public static int setB(int origin,int value){
  return set(origin,0,value);
}
public static int setG(int origin,int value){
  return set(origin,1,value);
}
public static int setR(int origin,int value){
  return set(origin,2,value);
}

public static int setA(int origin,int value){
  return set(origin,3,value);
}

public static int set(int origin,int pos,int value){
  return (origin & ~(0xFF << (pos * 8)) | value << (8 * pos));
}

【讨论】:

    【解决方案2】:

    按位和 (&amp;) 可用于清除特定位:

    int j = 0xff224488;
    
    j = j & 0xffff00ff;     // j is now 0xff220088
    

    按位或 (|) 可用于设置特定位:

    int j = 0xff224488;
    
    j = j & 0xffff00ff;     // j is now 0xff220088
    
    j = j | 0x00003300;     // j is now 0xff223388
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-12
      • 2011-08-18
      • 2018-02-01
      • 2011-11-20
      • 2015-08-17
      • 2015-04-30
      相关资源
      最近更新 更多