2010-08-11 83 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