当我们从另一个char整数中减去一个char整数会发生什么?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当我们从另一个char整数中减去一个char整数会发生什么?相关的知识,希望对你有一定的参考价值。

以下代码是使用递归将String转换为Integer的一种方法。我了解此过程,但无法确定执行此操作时会发生什么情况:

str.charAt(0) - '0'

我们可以使用parseInt或parseDouble将其轻松转换为int或double。那么,为什么要从字符串(这是一个数字)中减去一个char'0'?这如何将我们的字符转换为int或double?

// Java implementation of the approach to convert a String to an Integer using Recursion
public class GFG { 

    // Recursive function to convert string to integer 
    static int stringToInt(String str) 
    { 

        // If the number represented as a string 
        // contains only a single digit 
        // then returns its value 
        if (str.length() == 1) 
            return (str.charAt(0) - '0'); 

        // Recursive call for the sub-string 
        // starting at the second character 
        double y = stringToInt(str.substring(1)); 

        // First digit of the number 
        double x = str.charAt(0) - '0'; 

        // First digit multiplied by the 
        // appropriate power of 10 and then 
        // add the recursive result 
        // For example, xy = ((x * 10) + y) 
        x = x * Math.pow(10, str.length() - 1) + y; 
        return (int)(x); 
    } 

    // Driver code 
    public static void main(String[] args) 
    { 
        String str = "1235"; 
        System.out.print(stringToInt(str)); 
    } 
} 

答案

[0的ASCII是48,'1'是49,直到'9'是57,所以通过从'0'中减去数字字符,您将得到十进制数ASCII_Table

以上是关于当我们从另一个char整数中减去一个char整数会发生什么?的主要内容,如果未能解决你的问题,请参考以下文章

如何将char数组转换为整数

熊猫:减去两个日期列,结果是一个整数

char是整数还是字符?

在 DB2 中将位数据的 char 转换为整数

将 char 乘以整数 (c++)

使用数字作为大小创建整数的char数组