打印 char 的十进制值

2024-03-14

打印字符的十进制值的程序:

#include<stdio.h>

int main(void){

  char ch = 'AB';
  printf("ch is %d\n",ch);

}

为什么它打印第二个字符的十进制值,为什么不打印第一个字符的十进制值?

输出 :ch is 66


Because 'AB'是一个多字符常量,其值是实现定义的,无论是66或不是“不可预测“虽然可预测,但原则上和实践中在不同的实现中并不相同。

通常,您只在单引号中间使用单个字符。如果您使用多个字符,

  1. 编译器应该对此发出警告。
  2. 如果对应的值int is "不可预测“因为它是实现定义的。当然,给定一个实现,我们希望多字符常量始终具有相同的值。

如果您使用过gcc,那么这就是发生的事情根据这个消息来源 https://gcc.gnu.org/onlinedocs/cpp/Implementation-defined-behavior.html

编译器一次计算一个字符的多字符字符常量,将先前的值左移每个目标字符的位数,然后对截断为目标宽度的新字符的位模式进行或运算特点。最终的位模式的给定类型为 int,因此无论单个字符是否有符号,都是有符号的。如果常量中的字符多于目标 int 中可以容纳的字符,编译器会发出警告,并忽略多余的前导字符。

例如,'ab'对于具有 8 位字符的目标将被解释为‘(int) ((unsigned char) 'a' * 256 + (unsigned char) 'b')’, and '\234a' as ‘(int) ((unsigned char) '\234' * 256 + (unsigned char) 'a')

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

打印 char 的十进制值 的相关文章

随机推荐

  • XPages - onkeypress 事件未正确触发点击

    我使用 Xpages 自定义控件创建了一个搜索字段 id searchField 和一个搜索按钮 id searchButton 我在搜索字段上添加了一个 onkeypress 事件 这样它将触发对 searchButton 的单击 然后
  • 如何在图标后对齐多行文本

    在带有缩进 树数据 的表格中 我需要将第二行与第一行对齐 请注意 文本 Tail 与 Long 不对齐 在这里创建了一个类似的例子 div width 400px div a href ICon a span This is my figh
  • Firefox:“加载脚本时出错”

    如果我 快速单击 网站上的不同链接 Asp Net MVC jQuery 完整回发 FireFox 3 下会出现 加载脚本错误 重现这个错误是相当容易的任务 但我不明白为什么会发生 每次它都会显示不同的失败脚本文件 所有 JavaScrip
  • Linux 中的 itoa 函数在哪里?

    itoa 是将数字转换为字符串的非常方便的函数 Linux下好像没有itoa 是否有等效的功能或者我必须使用sprintf str d num 编辑 抱歉 我应该记得这台机器绝对是非标准的 已经插入了各种非标准libc用于学术目的的实现 A
  • 从 pandas 数据框中删除句子长于特定单词长度的行

    我想从 pandas 数据框中删除行 其中包含特定列中长度大于所需长度的字符串 例如 输入帧 X Y 0 Hi how are you 1 An apple 2 glass of water 3 I like to watch movie
  • python正则表达式重复与捕获问题

    使用python3的正则表达式功能 是否可以根据找到的重复次数来捕获可变数量的捕获块 例如 在以下搜索字符串中 我想使用相同的正则表达式捕获所有数字字符串 搜索字符串 1 尝试捕获 89 45 zzz89zzz45 mp3 搜索字符串 2
  • 列名必须是字符串或数组 yii

    我在访问 yii 的网络应用程序时遇到了一些困难 我的配置与所有者的设置相同 但是当我尝试访问时 出现错误 列必须是字符串或数组 我该如何解决它 提前致谢 报告错误消息时 获得准确的错误消息会很有帮助 实际的错误消息是 列name必须是字符
  • 允许在 Mac OS X 应用程序中读取文件的权利是什么? (拒绝文件读取数据错误)

    我正在制作一个 Mac OS X 应用程序 沙盒 它从 etc myfolder 中安装的配置文件读取 当我尝试使用 NSFileHandle 读取文件时 我在控制台中收到以下错误 sandboxd 3251 MyApp 3251 deny
  • 文件上传到文件流

    我正在将文件与 HttpWebRequest 一起发送 我的文件将来自 FileUpload UI 这里我需要将文件上传转换为文件流 以将流与 HttpWebRequest 一起发送 如何将 FileUpload 转换为文件流 由于 Fil
  • 以编程方式获取完整的 Ruby 版本?

    我知道可以通过以下方式获取 Ruby 版本 例如 1 9 3 RUBY VERSION持续的 但是 我想知道如何确定确切的版本 例如 1 9 3 p0 原因是 Ruby 1 9 3 的早期版本中存在一个未修复的错误 该错误在更高版本中起作用
  • 移动赋值运算符和移动构造函数之间的区别?

    一段时间以来 这一直让我感到困惑 而且到目前为止我还没有找到满意的答案 问题很简单 什么时候有一个move assignment operator接到电话 什么时候move constructor operator接到电话吗 cpprefe
  • 通过flask/python在html中显示从couchDB附加的图像

    我正在使用 Flask 和 python 从 couchdb 获取图像附件 然后将图像传递到 imgurl html 进行显示 问题是我只得到这个 返回 0x103b9c0b8 gt 处的 couchdb http ResponseBody
  • 跨线程操作无效:从创建它的线程以外的线程访问控制“textBox1”[重复]

    这个问题在这里已经有答案了 我想使用 UART 将温度值从微控制器发送到 C 接口并显示温度Label Content 这是我的微控制器代码 while 1 key scan get value of temp if Usart Data
  • 具有多个按钮和多个视频的 Listactivity

    我有一个 listactivity 应用程序 由 5 行组成 每行包含一个文本和 5 个按钮 文本和按钮都是可单击的 文本将打开 MyDay 活动 即文本视图 当您单击任何按钮时 它必须打开视频视图屏幕 其工作正常 如下图所示 但我的问题是
  • jQuery.each() 如何处理关联数组(对象)?

    我有一个关联数组 里面有两个对象 运行这个 myassoc each 回调仅运行一次 回调参数 索引和对象 也分别返回 0 和整个关联数组 人们会期望jQuery each 对数组中的每个元素运行 返回正确的键作为索引 返回正确的元素作为对
  • 替换 PhotoSwipe 库中的图像

    我有一个照片滑动 http www photoswipe com 我的页面上的画廊是这样以编程方式创建的 var instance window Code PhotoSwipe attach image options 现在我想更新图库中的
  • 在 Django 单元测试中使用会话对象

    我正在编写一个登录视图 并想为该视图添加单元测试 我的观点是这样的 def login request if request POST usrname request POST get username password request P
  • NLog - 删除超过 X 天的日志

    如何删除日志早于 X 天的文件 这很简单 但我在一个文件夹中只记录一天的日志 我的 NLog config 如下所示
  • Gnuplot 列堆叠直方图 - 行/行计数

    我有一个数据文件 其中包含未定义数量的条目 如下所示 A B C D E 1 0 2 5 4 7 4 3 4 1 8 7 4 0 7 1 1 第一行代表工作时间 然后以交替的方式暂停等等 为了可视化这一点 我通过定义两种具有不同颜色的线条样
  • 打印 char 的十进制值

    打印字符的十进制值的程序 include