2011-05-24 59 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