假設(shè)我在 Java 中有這個(gè) Long: Long x=0b01101L;我想用這個(gè)把它轉(zhuǎn)換成一個(gè)字符串:String str1 = Long.toBinaryString(x);有沒有辦法將第一個(gè) 0 保留在字符串中?我的意思是可以這樣:System.out.println(str1);打印01101而不是1101?
1 回答

犯罪嫌疑人X
TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊
這不可能。當(dāng)你聲明時(shí)Long x = 0b01101L;
,你創(chuàng)建了一個(gè)long
實(shí)例,它不包含關(guān)于String
它所包含的值的表示的信息。是的,它等于十進(jìn)制的 13,但它也等于繁體中文/日文中的十三,也等于 10 + 3,等等。
如果你想將它轉(zhuǎn)換為String
填充到一定數(shù)量的零,你可以使用String.format("%16s", Integer.toBinaryString(x)).replace(' ', '0')
,但你必須事先知道你想要打印多少位,因?yàn)檫@將始終返回 16 位。
但是,此信息未編碼為Long
(或long
)。如果您需要保留此信息,請(qǐng)將變量聲明為 a String xString = "01101";
,并在需要進(jìn)行數(shù)值運(yùn)算時(shí)將其轉(zhuǎn)換為long
using 。Long.valueOf(xString, 2);
添加回答
舉報(bào)
0/150
提交
取消