方法parseInt(String s,int radix)的目的是输出一个十进制数,这个数字是“String s”但是我们要知道他是多少进制的,而方法中“int radix”参数正是来表达这个信息的。
比如:parseInt(1010,2)
意思就是:输出2进制数1010在十进制下的数.
更直白地说:
parseInt(String s,int radix)就是求“int radix”进制数“String s”的十进制数是多少。
-----------------------
我们平时用到Integer.parseInt("123");其实默认是调用了int i =Integer.parseInt("123",10);
其中10代表的默认是10进制的,转换的过程可以看成:
i= 1*10*10+2*10+3
若是
int i = Integer.parseInt("123",16);
即可以看成:
i = 1*16*16+2*16+3 = 291
根据:Character.MIN_RADIX=2和Character.MAX_RADIX=36 则,parseInt(String s, int radix)参数中
radix的范围是在2~36之间,超出范围会抛异常。其中s的长度也不能超出7,否则也会抛异常。
源码如下:
public static int parseInt(String s, int radix)
throws NumberFormatException
{
if (s == null) {
throw new NumberFormatException("null");
}
if (radix < Character.MIN_RADIX) {
throw new NumberFormatException("radix " + radix +
" less than Character.MIN_RADIX");
}
if (radix > Character.MAX_RADIX) {
throw new NumberFormatException("radix " + radix +
" greater than Character.MAX_RADIX");
}
int result = 0;
boolean negative = false;
int i = 0, max = s.length();
int limit;
int multmin;
int digit;
if (max > 0) {
if (s.charAt(0) == '-') {
negative = true;
limit = Integer.MIN_VALUE;
i++;
} else {
limit = -Integer.MAX_VALUE;
}
multmin = limit / radix;
if (i < max) {
digit = Character.digit(s.charAt(i++),radix);
if (digit < 0) {
throw NumberFormatException.forInputString(s);
} else {
result = -digit;
}
}
while (i < max) {
// Accumulating negatively avoids surprises near MAX_VALUE
digit = Character.digit(s.charAt(i++),radix);
if (digit < 0) {
throw NumberFormatException.forInputString(s);
}
if (result < multmin) {
throw NumberFormatException.forInputString(s);
}
result *= radix;
if (result < limit + digit) {
throw NumberFormatException.forInputString(s);
}
result -= digit;
}
} else {
throw NumberFormatException.forInputString(s);
}
if (negative) {
if (i > 1) {
return result;
} else { /* Only got "-" */
throw NumberFormatException.forInputString(s);
}
} else {
return -result;
}
}
网络摘录
分享到:
相关推荐
- **十六进制转十进制**:可以使用`Integer.valueOf(String s, int radix)`方法,其中`s`是十六进制字符串,`radix`是基数(这里是16)。例如: ```java String hexValue = "FFFF"; int decValue = Integer....
如果想要直接从二进制、八进制或十六进制转换为十进制,可以使用`Integer.parseInt(String s, int radix)`方法。 - **使用`parseInt`进行转换**: - 示例:`Integer.parseInt("0101", 2)` 返回 `5` (二进制0101转换...
- `Integer.parseInt(String str, int radix)`: 这个方法用于将一个表示特定进制的字符串转换为整数。例如,`Integer.parseInt("1010", 2)`会返回十进制中的10,因为"1010"是二进制的10。 - `Long.parseLong...
System.out.println("Integer.parseInt(String s, int radix): " + Integer.parseInt(s1, 2)); ``` 在这个例子中,字符串"1010"是以二进制形式表示的数字10。 - **使用toString(int i, int radix)**:此方法用于...
- `Integer.parseInt(String s, int radix)`:这个函数将一个表示特定进制的字符串转换为对应的十进制整数。例如,`Integer.parseInt("1010", 2)`会返回十进制数字10。 - `Long.parseLong(String s, int radix)`:...
7. **`Integer.parseInt(String s, int radix)`方法**: 这个方法能够解析一个以指定基数表示的字符串,并返回对应的整数值。例如: ```java String binaryStr = "1010"; int decimal = Integer.parseInt...
此外,如果你想将其他进制的字符串转换为十进制整数,可以使用`Integer.parseInt(String s, int radix)`方法。`radix`参数表示输入字符串的基数。例如: ```java int decimal = Integer.parseInt("1010", 2); // 二...
- `Integer.parseInt(String)` 或 `Integer.parseInt(String, int radix)` 这两个方法用于将字符串解析为整数。默认情况下,`parseInt()` 使用10进制,但第二个参数可以指定基数(2到36之间)。 - `Integer.value...
`Integer.parseInt(String s, int radix)` 该方法用于解析一个字符串并将其按照指定的基数转换为整数。 - **示例**: ```java int decimalValue = Integer.parseInt("1100110", 2); // 结果为 102 ``` #### 三...
8. **Integer.parseInt(String s, int radix)**: 这个静态方法解析给定的字符串`s`,根据指定的基数`radix`将其转换为对应的整数值。如果解析失败或基数不正确,它会抛出`NumberFormatException`。 9. **Integer...
第二个重载方法 `Integer.parseInt(String, int radix)` 允许指定基数(2-36),用于解析十六进制或其他进制的数字。 - 另一种方式是通过 `Integer.valueOf(String)` 创建一个 `Integer` 对象,然后调用 `intValue...
另一个`parseInt(String s, int radix)`方法允许指定进制转换,例如: ```java int n = Integer.parseInt("120", 10); // 10进制转int,n = 120 int n = Integer.parseInt("12", 16); // 16进制转int,n = 18 ...
1. `Integer.parseInt(String s, int radix)`:这个静态方法将一个表示特定基数的字符串转换为对应的整数值。例如,`Integer.parseInt("1010", 2)`会将二进制数"1010"转换为十进制的10。 2. `Integer.toString(int ...
- `Integer.parseInt(String s, int radix)`:将一个表示特定基数的字符串转换为十进制整数。 - `Integer.toString(int i, int radix)`:将十进制整数转换为指定基数的字符串。 - `Integer.toBinaryString(int i)...
要将二进制、八进制或十六进制的字符串转换为十进制的整数,可以使用`Integer.valueOf(String s, int radix)`方法,其中`radix`参数指定了输入字符串的基数。例如: - `Integer.valueOf("FFFF", 16).toString()`会...
java中数据类型转换 收藏 java中数据类型转换 ...i = Integer.parseInt([String],[int radix]); 2). int i = Integer.valueOf(my_str).intValue(); 注: 字串转成 Double, Float, Long 的方法大同小异.