2011-05-24 108 views
1

我使用toBinaryString翻译方法是这样的:16位二进制前导零

for (i=0; i<anyLines.length; i++) { 

      if (anyLines[i].startsWith("@")) { 
       anyLines[i] = anyLines[i].replace("@",""); 
       anyLines[i] = Integer.toBinaryString((Integer.parseInt(anyLines[i]))); 
      } 
      else { 
       continue; 
      } 

但是,当我写一个文件,二进制只有2位长,虽然我想与所有的16位二进制零。例如,2被翻译为10,但我想有0000000000000010.我该怎么做?

回答

6

只需添加2^17和substring整个字符串:

anyLines[i] = Integer.toBinaryString(131072 + (Integer.parseInt(anyLines[i]))).substring(1, 17); 
+0

谢谢,这个命令很好用! – lrvilnius 2011-05-24 03:35:29

+3

很高兴你喜欢它!也许你可以接受它作为答案:D – akappa 2011-05-24 03:54:35

+0

非常好!解决了我的问题,非常感谢你! – Goatcat 2013-07-12 11:59:07

2

在您设置的二进制字符串只是检查字符串的长度和足够的零追加到字符串的前面,使其16个字符长。

+0

“在前面添加足够的零” - 尝试使用“前缀”或“前缀”等词 - 附加到前面,是一个矛盾。 – ocodo 2014-06-09 00:59:23