位标志和状态

时间:2012-10-29 23:42:24

标签: java byte flags bits states

我不知道这甚至叫什么,所以我无法真正找到问题。

这很简单,我正在写一个程序,而我的朋友给了我一些东西。 (这很难解释)

他们是: 为0x00 0×01 和 0×04

基本上,如果布尔值不为真,我想将0x00和0x04加在一起制作0004(4),但如果是,则加入0x01和0x04以制作0104(104)

我该怎么做? :■

我不确定所有的操作员,我已经尝试了|,<<,>>,我知道的一切,不知道该做什么,都没有用。

2 个答案:

答案 0 :(得分:1)

  int falseValue = 0x00;
  int trueValue = 0x01;
  int number = 0x04;
  boolean bool = true;

  int result = ((bool ? trueValue : falseValue) << 8) | number;

  System.out.println(Integer.toHexString(result));

答案 1 :(得分:0)

0x00 0x010x04是十六进制数字。您正在尝试进行十六进制加法。

String a= Integer.tohexString(0x00);
String b = Integer.toHexString(0x01);
if(true){
    sysout(Integer.toHexString(Integer.parseint(a,16)+Integer.parseInt(b,16)));
  }