在java中如果一个程序看到像000这样的数字,java会将其解释为0还是将其解释为000?我注意到我的计算器甚至不让我输入000,所以它让我想知道java是否也以这种方式计算数字
这个问题(对我而言)表明你对Java的工作方式有一个基本的误解,并且可能是对数学意义上的整数的一个基本误解.
让我们从这个摘录开始:
"...... java是否将其解释为0或将其解释为000"
这对我来说意味着你认为在数学意义上"0"和"000"之间存在差异.显然,没有这种差异.两者都是整数零的文本表示.第一种形式是常规表示,第二种形式是非常规表示.
简而言之,上面引用的摘录在数学意义上没有意义.
现在在Java中,int类型是数学整数最广泛使用的表示类型.并且该int类型具有一个且仅一个表示为零.
简而言之,如果我们int在计算/行为意义上讨论Java 值,那么上面引用的摘录没有任何意义.
在Java源代码中,整数文字被写为十进制数字字符序列; 例如0,1,42等等.在此上下文中(仅此上下文!),以零开头的整数文字被解析为八进制数; 即基数8.因此在Java源中012实际上意味着数字十.但是,000解释为八进制数仍然为零.
简而言之,如果我们在Java源代码中讨论文字,那么上面引用的摘录没有任何意义.
最后,我们需要处理Java应用程序必须将用户输入的数字序列转换为Java int值的情况.在这种情况下,转换通常通过调用Integer.parseInt(...)或类似的方式完成.此方法有两个不同的版本:
Integer.parseInt(string)期望字符串是一个十进制数字序列(带有可选符号).这将返回int两个零值"0"和"000".任何前导0字符都会被忽略.
Integer.parseInt(string, radix)期望字符串是一个数字序列(带有一个可选符号),其基数由radix参数给出.再一次,前导零被忽略.
总之,前导零将被忽略,因此"0"而"000"会被解析为int为零,在所列出的摘录的区别并不存在.
| 归档时间: |
|
| 查看次数: |
3361 次 |
| 最近记录: |