C++中减去'0'的作用( -'0' )

摘要:
说了那么多屁话那么这个减去零到底是干啥的呢?它的作用就是减去0的ASCII值:48。同时这个语句等价于returnx-48,也就是说直接减去ACSII值48效果也是一样的,这点在我的博客里有用到,所以到最后这么个东西其实并没有什么卵用...#include#includeusingnamespacestd;intchange_chr_num{returnx-48;}intmain(){charx;cin˃˃x;cout˂˂change_chr_num+1;return0;}/*Input:9Output:10*/修改一下代码,值还是一样的。

标题没有在卖萌→_→

我们在日常研(chao)究(xi)大佬们的代码时,可能会遇到减去字符'0'的情况,比如下图C++中减去'0'的作用( -'0' )第1张,这种语法问题吧说简单它不那么简单,毕竟不好理解;但说难吧也不难,其实就是让代码更简洁更有逼格的途径而已。

说了那么多屁话那么这个减去零到底是干啥的呢?

它的作用就是减去0的ASCII值:48。可以方便的用来转换大小写或者数字和和字符。比如我们可以写这么一个函数:

#include <cstdio>#include <iostream>
using namespacestd;

int change_chr_num( charx )
{
    return x - '0';
}

intmain()
{
    charx;
    cin >>x;
    cout << change_chr_num(x) + 1;
    return 0;
}
/*Input: 9
Output: 10
*/

输入的是字符串类型下的9,输出的是计算后的整型10。同时这个语句等价于 return x-48,也就是说直接减去ACSII值48效果也是一样的,这点在我的博客里有用到,所以到最后这么个东西其实并没有什么卵用...

#include <cstdio>#include <iostream>
using namespacestd;

int change_chr_num( charx )
{
    return x - 48;
}

intmain()
{
    charx;
    cin >>x;
    cout << change_chr_num(x) + 1;
    return 0;
}
/*Input: 9
Output: 10
*/

修改一下代码,值还是一样的。

免责声明:文章转载自《C++中减去'0'的作用( -'0' )》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇GitExtensions工具安装与配置Oracle(创建、修改、删除表)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

软件测试用例报告整理

首先测试用例是excel格式 如果是xmind需要将xmind转excel,具体实现方式可以参考xmind转excel的博客 新增一个sheet,描述测试用例模块通过率情况 1.统计用例通过情况的表格 首先把需要统计的function表中的测试模块和功能点输入好然后失败的用例数量和通过的测试用例数量 需要用到函数countif 具体用法是: 英文格式:CO...

JS-为金额添加千分位逗号分割符

前言:这个功能在前端页面中使用的还是比较多的,正好我们的项目中也有使用此功能,不过YY同学写的代码不像个方法的样子,一个入口中间又插了几道子,所             以,我写了下面这个方法,经过测试,适用性还是蛮好的,留在这里以备后用! <!DOCTYPE html> <html> <head> <...

理解字节序 大端字节序和小端字节序

以下内容参考了 http://www.ruanyifeng.com/blog/2016/11/byte-order.html https://blog.csdn.net/yishengzhiai005/article/details/39672529 计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endia...

通过尾递归避免栈溢出

JavaScript中的递归即函数内调用函数自身,但递归是非常耗内存的,每一次调用都会分配一定的栈空间,达到一定的数量(具体看浏览器)便会溢出报错。 function recursion (num) { if (num === 1) { return 1; } return num + recursion(--num...

AVR单片机教程——走向高层

本文隶属于AVR单片机教程系列。   在系列教程的最后一篇中,我将向你推荐3个可以深造的方向:C++、事件驱动、RTOS。掌握这些技术可以帮助你更快、更好地开发更大的项目。 本文涉及到许多概念性的内容,如果你有不同意见,欢迎讨论。 关于高层 这一篇教程叫作“走向高层”。什么是高层? 我认为,如果寥寥几行代码就能实现一个复杂功能,或者一行代码可以对应到几百句...

在Lambda表达式中进行递归调用

Lambda表达式是一个匿名的方法,在开发期我们是不知道其方法名是什么的,所以我们要怎么递归调用呢? 如果你看过我这文章《让您知道您的方法是被何“人”调用 》的话,你应该会“啊哈”的拍一下头脑,思路就出来了,没错!!就是直接用StackFrame获取当前执行的方法,然后直接Invoke即可。示例代码:     class Test    {       ...