Java 位掩码0b1解析回int
在JavaSDK1.8中是否有方法将Java 位掩码0b1解析回int,java,bitmask,Java,Bitmask,在JavaSDK1.8中是否有方法将“0b1”之类的字符串解析回其整数值 我尝试了Integer.parseInt,但失败了 与此字符串相同的问题“0b1111_1101” 也许Eclipse.JDT中有某种东西可以将其作为java表达式进行评估 编辑: public static String simplerRewriteBitMask(String token) { String input = "0b1111_1111"; input = input.replace("0b
“0b1”
之类的字符串解析回其整数值
我尝试了Integer.parseInt
,但失败了
与此字符串相同的问题“0b1111_1101”
也许Eclipse.JDT中有某种东西可以将其作为java表达式进行评估
编辑:
public static String simplerRewriteBitMask(String token) {
String input = "0b1111_1111";
input = input.replace("0b", "");
input = input.replace("_", "");
return Integer.toString(Integer.parseInt(input, 2));
}
为了给我提供更多关于我努力实现的内容的背景:
它涉及到对锐化(Java代码到C#的转换器)的修改,以便在有效的C#int声明中转换位掩码字符串声明(此位掩码符号仍然不由C#管理)。一个简单的解决方案是去掉前缀
“0b”
,将任何“
替换为”
,然后使用Integer.parseInt(n,2)
来获取int
值。一个简单的解决方案是去掉前缀“0b”
,用“
替换任何”
,然后使用Integer.parseInt(n,2)
获取int
值。我尝试了解决方案和我自己的解决方案,最后保留了我的解决方案,因为虽然不太复杂,但速度更快。然而,由于我对Java不是很在行,也许还有改进的余地
:
public static String simplerRewriteBitMask(String token) {
String input = "0b1111_1111";
input = input.replace("0b", "");
input = input.replace("_", "");
return Integer.toString(Integer.parseInt(input, 2));
}
我的解决方案(有改进)
私有静态字符串重写位掩码(字符串令牌){
int结果=0;
对于(int i=2;i
:
public static String simplerRewriteBitMask(String token) {
String input = "0b1111_1111";
input = input.replace("0b", "");
input = input.replace("_", "");
return Integer.toString(Integer.parseInt(input, 2));
}
我的解决方案(有改进)
私有静态字符串重写位掩码(字符串令牌){
int结果=0;
对于(int i=2;i result=result-upposted,因为不带替换的解决方案是一个好主意,尽管改进总是可能的。较新的java:Integer.parseUnsignedInt
有助于“unsigned”高于Integer.MAX_值的值。Upvoted,因为不带替换的解决方案是一个好主意,尽管改进总是可能的。较新的java:Integer.parseUnsignedInt
有助于高于Integer.MAX_值的“unsigned”值。