Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法从按位操作获取长值_Java_Bitmap_Bit Manipulation_Bitwise Operators_Bitmask - Fatal编程技术网

Java 无法从按位操作获取长值

Java 无法从按位操作获取长值,java,bitmap,bit-manipulation,bitwise-operators,bitmask,Java,Bitmap,Bit Manipulation,Bitwise Operators,Bitmask,我需要获得以下按位运算的输出,以便进一步处理。不幸的是,每当我试图将输出转换为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 -

我需要获得以下按位运算的输出,以便进一步处理。不幸的是,每当我试图将输出转换为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 + "");
用于从文本中解析数字文字,而不是计算任意表达式。根据javadoc方法:

该参数被解释为表示带符号的十进制整数,就好像该参数被赋予了
parseInt(java.lang.String)
方法一样

您需要将表达式编写为代码,例如:

long type = (TOTAL_MASK - BASE_TYPE_MASK) | BASE_OUTBOX_TYPE;
用于从文本中解析数字文字,而不是计算任意表达式。根据javadoc方法:

该参数被解释为表示带符号的十进制整数,就好像该参数被赋予了
parseInt(java.lang.String)
方法一样

您需要将表达式编写为代码,例如:

long type = (TOTAL_MASK - BASE_TYPE_MASK) | BASE_OUTBOX_TYPE;

某些运算符对单个操作数应用一元数字提升,该操作数必须生成数字类型的值,如果操作数是编译时类型byte、short或char,则通过扩大原语转换将其提升为int类型的值(§5.1.2)


某些运算符对单个操作数应用一元数字提升,该操作数必须生成数字类型的值,如果操作数是编译时类型byte、short或char,则通过扩大原语转换将其提升为int类型的值(§5.1.2)


两个问题:1-你知道Integer.valueOf(String)做什么吗?2-您看到调用Integer.valueOf的实际值了吗?我了解Integer.valueOf的作用,在本例中,按位操作生成一种字符串表示形式(type&-21…)我希望从逐位运算中得到一个像long或integer这样的文本数字类型,这样结果将计算为integer.valueOf可以处理的值,例如integer.valueOf(12)这个问题主要是关于我的位运算表达式,它的值不是两个问题:1-你知道
Integer.valueOf(String)
的作用吗?2-您看到调用Integer.valueOf的实际值了吗?我了解Integer.valueOf的作用,在本例中,按位操作生成一种字符串表示形式(type&-21…)我希望从逐位运算中得到一个像long或integer这样的文本数字类型,这样结果将计算为integer.valueOf可以处理的值,例如integer.valueOf(12)将起作用问题主要在于我的逐位运算表达式,它的计算结果不是很好,让我试一试,然后再给你回复。那么位运算符呢&我们在这个表达式中省略它吗。仅供参考,我不太擅长按位运算这将编译,但我能得到按位运算的正确值吗?您不能执行
“type”&int
。这个表达式没有意义,因为
String
不能用一个数字进行
ed。在这个上下文db.execSQL(“更新”+TABLE_NAME+“SET”+TYPE+”=(“+TYPE+”&“+(Types.TOTAL_maskOff)+“+maskOn+”+”其中“+ID+”=?”,新字符串[]{ID+”});那太好了,让我试试,然后再给你回复。关于位运算符呢&我们在这个表达式中省略它吗。仅供参考,我不太擅长按位运算这将编译,但我能得到按位运算的正确值吗?您不能执行
“type”&int
。这个表达式没有意义,因为
String
不能用一个数字进行
ed。在这个上下文db.execSQL(“更新”+TABLE_NAME+“SET”+TYPE+”=(“+TYPE+”&“+(Types.TOTAL_maskOff)+“+maskOn+”+”其中“+ID+”=?”,新字符串[]{ID+”});