我需要获得以下按位运算的输出以进行进一步处理。不幸的是,每当我尝试将输出转换为 int 或 long 类型时,我都会收到数字格式异常。如何确保我可以处理的类型的输出?
String TYPE = "type";
long TOTAL_MASK = 0xFFFFFFFF;
long BASE_INBOX_TYPE = 20;
long BASE_TYPE_MASK = 0x1F
long type = Integer.valueOf("" + TYPE + " & " + (TOTAL_MASK - BASE_TYPE_MASK) + " | " + BASE_OUTBOX_TYPE + "");
一些运算符将一元数值提升应用于单个操作数,该操作数必须生成数值类型的值,如果操作数是编译时类型的 byte、short 或 char,则通过扩展原语将其提升为 int 类型的值转换(第 5.1.2 节)。
String TYPE = "type";
long TOTAL_MASK = 0xFFFFFFFF;
long BASE_INBOX_TYPE = ~20; // (~)promotion to int first (not necessary)
long BASE_TYPE_MASK = 0x1F;
long type = (TOTAL_MASK - BASE_TYPE_MASK) | BASE_INBOX_TYPE;
System.out.println(type);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句