gpt4 book ai didi

java - API 中的碱基转换方法是什么?

转载 作者:搜寻专家 更新时间:2023-10-31 08:09:09 28 4
gpt4 key购买 nike

您可以使用什么方法在 Java 中的基数之间进行转换?它类似于 IntegerToBase (int, base),但我不记得了。

最佳答案

从字面上讲,整数值不会从一种基数转换为另一种基数。感谢冯诺依曼,计算的先驱之一,他认为尝试在二进制电路上使用基数为 10 的算术的想法毫无意义,整数以二进制格式存储,我们并没有试图改变它:-) 我们是什么谈论的是将它们转换为以某个基数(默认为基数 10 除外)表示它们的字符串,并将字符串转换为除(默认)基数 10 以外的基数中的整数。必要的工具是 Integer 类的静态方法。

  • Java 提供了 Integer.toString(int i, int radix) 转换函数,它接受一个整数和一个基数(基数),并返回该基数中该整数的字符串表示。
    String hexRepr = Integer.toString(255, 16)  // returns "FF"
  • 反过来,即从代表不同基数的数字的字符串中,有 Integer.parseInt(String s, int radix)
    int myNum = Integer.parseInt("FF", 16)  // returns 255
  • 要将表示为基 radix1 字符串的数字转换为基 radix2 字符串表示,必须将刚才提到的两种方法结合起来,如下例所示:
    int radix1 = 16;  // The input will be parsed assuming base 16 representation
    int radix2 = 4; // The result will be output using a base 4 representation
    String input = "FF"; // which in base 16 represents the number 255
    String converted = Integer.toString(Integer.parseInt(radix1Representation, radix1),radix2); /// returns "3333" which in base 4 is the number 255

  • 更多细节可以在 API 文档中找到。我在这里包含了其中的一些内容,以确保读者在使用这些方法时也能看到他们需要注意的事项。
    public static String toString(int i, int radix)

    此方法返回由第二个参数指定的基数中第一个参数的字符串表示形式。

    如果基数小于 Character.MIN_RADIX 或大于 Character.MAX_RADIX ,则使用基数 10。

    如果第一个参数为负,则结果的第一个元素是 ASCII 减字符 '-' ( '\u002D' )。如果第一个参数不是负数,则结果中不会出现符号字符。

    结果的其余字符表示第一个参数的大小。如果幅度为零,则由单个零字符 '0' ( '\u0030' ) 表示;否则,幅度表示的第一个字符将不是零字符。以下 ASCII 字符用作数字:
    0123456789abcdefghijklmnopqrstuvwxyz 

    这些是 '\u0030''\u0039''\u0061''\u007A' 。如果基数为 N,则这些字符的前 N ​​个按所示顺序用作基数-N 数字。因此,十六进制(基数 16)的数字是 0123456789abcdef。如果需要大写字母,可以对结果调用 String.toUpperCase() 方法:
    Integer.toString(n, 16).toUpperCase() 

    资料来源: http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#toString%28int,%20int%29
    public static int parseInt(String s, int radix) throws NumberFormatException

    此方法将字符串参数解析为第二个参数指定的基数中的有符号整数。字符串中的字符必须都是指定基数的数字(由 Character.digit(char, int) 是否返回非负值决定),除了第一个字符可以是 ASCII 减号 '-' ( '\u002D' ) 表示负值或 ASCII 加号 '+' ( '\u002B' ) 表示正值。返回结果整数值。

    如果发生以下任何一种情况,则会抛出 NumberFormatException 类型的异常:
  • 第一个参数是 null 或长度为零的字符串。
  • 基数小于 Character.MIN_RADIX 或大于 Character.MAX_RADIX
  • 字符串的任何字符都不是指定基数的数字,但第一个字符可以是减号 '-' ( '\u002D' ) 或加号 '+' ( '\u002B' ),前提是字符串长度大于 1。
  • 字符串表示的值不是int类型的值。

  • 例子:
    parseInt("0", 10)           // returns 0
    parseInt("473", 10) // returns 473
    parseInt("+42", 10) // returns 42
    parseInt("-0", 10) // returns 0
    parseInt("-FF", 16) // returns -255
    parseInt("1100110", 2) // returns 102
    parseInt("2147483647", 10) // returns 2147483647
    parseInt("-2147483648", 10) // returns -2147483648
    parseInt("2147483648", 10) // throws NumberFormatException
    parseInt("99", 8) // throws NumberFormatException
    parseInt("Kona", 10) // throws NumberFormatException
    parseInt("Kona", 27) // returns 411787

    资料来源: http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt%28java.lang.String,%20int%29

    关于java - API 中的碱基转换方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13654671/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com