获取二进制int,java
我想从二进制格式的getMethod()中提取一个int。有人知道如何使用:获取二进制int,java,java,variables,binary,Java,Variables,Binary,我想从二进制格式的getMethod()中提取一个int。有人知道如何使用:inti=0b10101010(摘自上一篇关于堆栈溢出的文章,谢谢大家)带有一个变量。 int i=0bgetMethod()在我尝试过的多种方式中都不起作用(0b+var等)。我没有实际值,因此无法硬编码1和0。 任何帮助都将不胜感激。这对于汇编程序来说,这个二进制数是选择寄存器文件中的寄存器,以字符串格式传递以保存它,直到我解析它。数字计算机以二进制存储所有的int(即使是以十进制编码的)。您可以使用查看任何int的
inti=0b10101010代码>(摘自上一篇关于堆栈溢出的文章,谢谢大家)带有一个变量。
int i=0bgetMethod()代码>在我尝试过的多种方式中都不起作用(0b+var等)。我没有实际值,因此无法硬编码1和0。
任何帮助都将不胜感激。这对于汇编程序来说,这个二进制数是选择寄存器文件中的寄存器,以字符串格式传递以保存它,直到我解析它。数字计算机以二进制存储所有的int
(即使是以十进制编码的)。您可以使用查看任何int
的二进制表示形式
如果需要解析二进制字符串
,可以使用其中第一个参数是要解析的字符串
,第二个参数是基数(对于将是2
)的二进制文件。代码:int i=Integer.parseInt(Micro.RegSel,2);生成错误(该方法不适用于enumbody)。
Micro.RegSel是一个enum实现的enumbody,它产生一个由4个1和0组成的字符串。如果我只是打印它,它会打印掉所有的前导零。我需要前导零。我的代码总共需要32位,这是它的一部分。
其中一个开关语句有:Micro.RegSel.setFourBit(“0011”);这将打印“11”。直接从枚举0011打印字符串
int i = Integer.parseInt(Micro.RegSel.getFourBit().toString(), 2); produces a java.lang.NumberFormatException even though Micro.RegSel.getFourBit().toString() prints all 4 digits
在尝试了几个选项(我就是在这里问我的问题)并阅读了堆栈跟踪之后,我意识到问题是对于没有选择寄存器的操作码,默认值是“xxxx”。
所以我把它改写成这样:
int i=0;
字符串j=Micro.RegSel.getFourBit().toString();
如果(j.匹配(“[\d]”){
i=整数.parseInt(j,2);
}
就像我需要的那样。谢谢你能出示你的代码吗?就像tnw说的,出示你的代码。如果您正在引用另一个SO问题,请提供链接。