String 如何将任意基数的数字的字符串版本转换为整数?

String 如何将任意基数的数字的字符串版本转换为整数?,string,String,如何将字符串转换为整数 例如: 5328764,至整数基数10 AB3F3A,至内底16 假设任意基数不是16、10、8、2,则任何代码都是有用的: < C++ >使用< /P> 在Javascript中,使用parseInt 在Python中,使用intstring,base 在Java中,使用“谢谢Michael” return Integer.parseInt("AB3F3A", 16); 在PHP中,使用 在Ruby中,用于 用C语言自己写一个。9999实际上是9000+900+90+

如何将字符串转换为整数

例如:

5328764,至整数基数10 AB3F3A,至内底16
假设任意基数不是16、10、8、2,则任何代码都是有用的:

< C++ >使用< /P> 在Javascript中,使用parseInt

在Python中,使用intstring,base

在Java中,使用“谢谢Michael”

return Integer.parseInt("AB3F3A", 16);
在PHP中,使用

在Ruby中,用于


用C语言自己写一个。

9999实际上是9000+900+90+9 因此,从字符串的右侧开始,一次选择一个数字。
每个字符数字都有一个ASCII码,可以将其转换为数字并乘以适当的数量。

在C中,我认为它是:Convert.ToInt64value,base
在java中,基数必须是2、8、10或16这两个函数,在两个方向上:代码参数表示数字系统:01表示基数2,0123456789表示基数10,0123456789abcdef表示十六进制,等等

public String convert(long num, String code) {
    final int base = code.length();
    String text = "";
    while (num > 0) {
        text = code.charAt((int) (num%base)) + text;
        num /= base;
    }
    return text;
}

public long toLong(String text, String code) {
    final long base = code.length();
    long num = 0;
    long pow = 1;
    int len = text.length();
    for(int i = 0; i < len; i++) {
        num += code.indexOf(text.charAt(len - i - 1)) * pow;
        pow *= base;
    }
    return num;
}

println(convert(9223372036854775807L,"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"));
println(convert(9223372036854775807L,"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@=-+*/^%$#&()!?.,:;[]"));
println(toLong("Ns8T$87=uh","0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@=-+*/^%$#&()!?.,:;[]"));```

您使用的是什么语言?-1表示不使用明显的ref文档。您是指编程语言还是书面语言?他的问题也不是英文的。为什么投反对票,他说任何代码都会帮助他!为什么要投否决票?如果这是一个合法的新手问题,那么肯尼特真的涵盖了基础。如果这是一个家庭作业问题,那么使用标准库函数可能是不允许的,因此我们没有做OP的工作。我怀疑否决票将是来自Michael Mrozek-Int32的答复。Parse不好,因为它无法处理空字符串,引发异常。最好使用Convert.ToInt32或Convert.ToInt64等。希望它能对某些人有所帮助,这里还有一些C/C++的转换方法-
return int("AB3F3A", 16)
return Integer.parseInt("AB3F3A", 16);
return intval(base_convert('AB3F3A', 16, 10));
"AB3F3A".to_i(16)
public String convert(long num, String code) {
    final int base = code.length();
    String text = "";
    while (num > 0) {
        text = code.charAt((int) (num%base)) + text;
        num /= base;
    }
    return text;
}

public long toLong(String text, String code) {
    final long base = code.length();
    long num = 0;
    long pow = 1;
    int len = text.length();
    for(int i = 0; i < len; i++) {
        num += code.indexOf(text.charAt(len - i - 1)) * pow;
        pow *= base;
    }
    return num;
}

println(convert(9223372036854775807L,"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"));
println(convert(9223372036854775807L,"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@=-+*/^%$#&()!?.,:;[]"));
println(toLong("Ns8T$87=uh","0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@=-+*/^%$#&()!?.,:;[]"));```
toLong("5328764", "0123456789") = 5328764
toLong("AB3F3A", "0123456789ABCDEF") = 11222842