2010-08-11 119 views
-1

可以說我有一個數字345,我想讓我最終以0345結束。用零填充數字

int i = 0345; 

我怎樣才能將現有的數量,並聲明這意味着它是八時一起轉移,或附加一個0

+0

爲什麼你需要前面的0? – Poindexter 2010-08-11 21:22:52

+1

你的意思是你想顯示前面的0嗎?因爲如果你想在整數中「存儲」0,這是沒有意義的 – KeatsPeeks 2010-08-11 21:32:51

+0

你需要regex來修改你的源代碼,以便這些十進制文字變成八進制嗎?打印數字時是否需要零填充?你究竟想要什麼? – polygenelubricants 2010-08-12 08:27:20

回答

4

我知道你在談論一個int,但也許你想要的是用一個前導0來填充數字。一種快捷的方法是使用String.format靜態方法。

int num = 345;  
String.format("%04d", num); 

將返回:

"0345" 

四維告訴它0添加到左側,如果有小於4位,這樣你就可以將其更改爲5,它會給你:

"00345" 
1

上的數字開始使用0,所以0345實際上229是十進制。我不確定您希望如何使用按位操作將零號添加到數字中,該操作對數字的二進制表示形式起作用。如果您想將其添加到十進制表示中,它不會有任何意義,因爲該數字始終以二進制格式存儲,並且該數值在顯示時會被轉換爲十進制數。進行任何計算時,十進制值不重要,只有二進制。

如果您只想在開始時顯示值爲0,那麼您可以將0附加到包含該數字的字符串,可以很容易地完成,如"0" + i

+0

需要是一個int。 – 2010-08-11 21:28:21

+0

我有Integer.parseInt(「0」+575,8);但它有點髒。 – 2010-08-11 21:36:14

+0

原始值不能包含像這樣的前面的0。 345的值實際上是'00000000000000000000000101011001'。這就是所有計算中使用的。當你真正看到345系統獲得這個二進制值並將其轉換爲一個字符串來顯示。否則,它總是像這樣使用。在十進制表示中添加0是沒有意義的,只能將它添加到字符串值中。 0345和345在二進制中相同(十進制中的0不會向二進制值添加任何內容)。如果我不明白你想要什麼,也許會讓你的問題更清楚些? – 2010-08-11 21:41:28