从 char 中减去字符“0”如何将其更改为 int?

2023-12-29

此方法适用于 C、C++ 和 Java。我想知道其背后的科学原理。


的值char可以是 0-255,其中不同的字符映射到这些值之一。数字也是按顺序存储的'0'通过'9',但它们通常也不存储为前十个char价值观。也就是说,角色'0'没有 ASCII 值0。的字符值0几乎总是\0空字符。

在不了解有关 ASCII 的任何其他信息的情况下,如何减去一个值非常简单'0'任何其他数字字符中的字符将产生原始字符的 char 值。

所以,这是一个简单的数学:

'0' - '0' = 0  // Char value of character 0 minus char value of character 0
// In ASCII, that is equivalent to this:
48  -  48 = 0 // '0' has a value of 48 on ASCII chart

因此,类似地,我可以用任何一个进行整数数学运算char数学...

(('3' - '0') + ('5' - '0') - ('2' - '0')) + '0') = '6'

和...之间的不同3, 5, or 2 and 0ASCII 图表上的值恰好等于我们看到该数字时通常想到的面值。减去char '0'从每个中,将它们加在一起,然后添加'0'返回最后将为我们提供代表 char 的 char 值,该值将是进行简单数学运算的结果。

上面的代码片段模拟3 + 5 - 2,但在 ASCII 中,它实际上是这样做的:

((51 - 48) + (53 - 48) - (50 - 48)) + 48) = 54

因为在 ASCII 图表上:

0 = 48
2 = 50
3 = 51
5 = 53
6 = 54
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 char 中减去字符“0”如何将其更改为 int? 的相关文章

随机推荐

  • Mongodb 读取首选项

    SETUP 我有 mongodb 的一个主实例和两个辅助实例 两个辅助实例之一托管在与我的 Web 应用程序相同的区域中 我正在使用 pymongo 进行连接 QUERY 如何以较低的延迟连接到辅助设备 目前我正在这样做 from pymo
  • 如何使用 jquery 动态地将新项目添加到此表单内的下拉列表中?

    document ready function var element form element on mousedown function event element
  • Javascript:仅读取大型服务器文本文件的最后 x 行数

    今天我正在处理非常大的日志文件 我想通过 RPi 上的 lighttpd 显示它们 但它们每天都在变大 因此很快将需要很长时间来加载 为了防止这个问题 我想我可以有一个按钮来读取 比如说这个日志文件的最后 500 行 当然我对javascr
  • 如何在 Windows 10 上弹出 USB 驱动器(IOCTL_STORAGE_EJECT_MEDIA 不再足够)

    在 Windows 上弹出 USB 驱动器的惯例是按以下顺序进行 CreateFile drive letter with read write rights file share read and write DeviceIoContro
  • Eclipse 风格工具提示库?

    Does anyone know of an open source swing tooltip library that works like eclipse s tooltips Specifically the functionali
  • 在 WinForms 中,UI 中是否可以有多个线程?

    我想答案是否定的 我在 stackoverflow 上检查了类似的问题 但它们似乎根据特定解决方案的需要走了不同的方向 但可能错过了一些东西 WinForms 应用程序中是否可以有多个 UI 线程 我正在重构并想知道是否应该使用 Concu
  • 仅 WPF TabItem 标题样式

    我正在编写一个 WPF 应用程序 并尝试设置 TabItem 标头的样式 仅在选择时显示背景颜色更改的边框 问题是 当我添加该样式时 它会弄乱 TabItem 中 TextBlock 项目的样式 我不是 WPF XAML 专家 下面是我在
  • 动态创建div时如何显示/隐藏div

    我正在开发评论系统 对评论进行两级重播 我在如何显示和隐藏 div 方面遇到问题 因为它的 id 不同 我尝试了以下方法
  • 构建定义——只有空队列

    如果我正在创建构建定义 则无法选择默认代理队列 不久前 我可以创建包含默认队列的构建定义 我不知道改变是什么 它不再起作用了 如果我去编辑正确创建的构建定义 然后再次尝试创建定义 我可以选择默认队列 这是什么原因呢 在创建之前编辑现有的构建
  • 正则表达式验证 UTC 日期时间格式

    我想验证日期时间格式 例如 2014 08 29T06 44 03Z 为此我正在寻找一个reg ex 尝试了几种组合 但这些对我不起作用 试试这个正则表达式 b 0 9 4 0 9 2 0 9 2 T 0 9 2 0 9 2 0 9 2 Z
  • 在 word2vec Gensim 中获取二元组和三元组

    我目前在我的 word2vec 模型中使用 uni gram 如下所示 def review to sentences review tokenizer remove stopwords False Returns a list of se
  • IndexError:索引超出范围:7

    我正在使用名为财务数据质量管理企业版 FDMEE 的 Oracle EPM 产品 我编写了一个 Jython 脚本来解析数据文件并将其推送到 FDMEE 产品架构中的自定义表 当我推送数据文件的子集时 它工作正常 但是当我解析整个数据文件时
  • Git SVN 忽略路径如何工作(忽略每日构建标签)?

    我正在尝试使用 git svn 克隆 svn 存储库 该存储库具有我想忽略的每日构建标记 我正在尝试使用 ignore paths 选项来执行此操作 但我仍然将每日构建标签作为我的存储库中的分支 最近有一个类似的 但到目前为止尚未得到解答
  • 连接一元参数的模板参数包

    虽然说 std add pointer是一元的 以下代码被 GCC 7 0 0 20160608 和 Clang 3 9 0 接受 template
  • 在 Clojure 中测试对象是否为 Java 原始数组

    Clojure 中检测对象是否为 Java 原始数组的最佳方法是什么 我需要这个的原因是对原始数组进行一些特殊处理 这可能看起来像 if byte array object handle byte array object 它是一段对性能相
  • Python 每个模块和包一个类

    我正在尝试用 Python 构建我的应用程序 从 C Java 背景回来后 我喜欢每个文件一个类的方法 我希望我的项目树看起来像这样 Service Database DbClass1 py DbClass2 py Model DbMode
  • 用于保持您的网站被 Google Bing 等索引的 PHP 库

    我需要一些能够对我的网址进行索引和描述的库 所以我想对它说类似的话 用一些关键词索引这个新网址 www bla bla com new url 或类似的东西 我想确定的是 如果我告诉我的库我的新 URL Google 和其他人将 100 尽
  • 获取页面上所有 javascript 错误/javascript 错误处理

    我希望能够向自己发送页面上的所有 javascript 错误 我是一名扩展开发人员 因此以下内容重点强调在调用 dom 之前确保 dom 已准备好 我研究了添加一些功能throw还可以发送或邮寄例外情况 但我发现这是不可能的 1 主要解决这
  • 删除/避免向 URL 添加目标链接

    对于这里的 jQuery JavaScript 专家来说 这可能很简单 但我在网络上找不到解决方案 Case 我在页面底部有一个链接 上面写着Back to Top 该链接只是一个目标链接 如下所示 a href top class sta
  • 从 char 中减去字符“0”如何将其更改为 int?

    此方法适用于 C C 和 Java 我想知道其背后的科学原理 的值char可以是 0 255 其中不同的字符映射到这些值之一 数字也是按顺序存储的 0 通过 9 但它们通常也不存储为前十个char价值观 也就是说 角色 0 没有 ASCII