为什么charAt运算要 - ‘0’

本文探讨了在算法题中为何常使用str.charAt(index)-'0'进行运算,重点讲解了ASCII字符编码的应用,特别是如何通过减去字符'0'的ASCII值实现数字解析。通过实例展示了两种字符串转换大数的方法,并揭示了两者之间的逻辑联系。
摘要由CSDN通过智能技术生成

为什么charAt运算要 - ‘0’


前提概要

ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响 [1] 。
32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。

背景

最近在刷牛客网的算法题,发现很多的算法中都要str.charAt(index) - '0’来进行运算,自己一时间也搞不明白这个运算的逻辑,百度搜了一下才看明白,之前跟小伙伴交流的时候,一道大数运算的题目,看到他的代码里面使用的是str.charAt(index) - 48,当时也是不明所以,这次就到了其他的运算,就打算好好看下这个.
char运算和数字运算不太一样,char运算是使用的ASCII,所以在计算的时候,需要-48,这个还可以理解,为什么要 - '0'呢,是因为,'0'在char运算中,代表的是数字48,所以也可以达到同样的结果.

 String version1 = "02340";
        String version2 = "02340";
        int v1len = 0;
        int v2len = 0;
        int num1 = 0;
        int num2 = 0;
        while(v1len < version1.length()){
   
            num1 = num1 * 10 + 
  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值