发布网友 发布时间:2023-02-25 10:58
共3个回答
热心网友 时间:2024-03-17 04:33
其实所有运算都是针对内存进行运算,char型是以ASCII码对应保存在内存中的,比如字符a的ASCII码是97,那它和int 97没差别,但有些字符是不可见的比如换行符、回车符、制表符等等。这个具体可以参考ASCII码表。
比如说,你用波浪号 ~ (ASCII码值126)对68取余数,你会得到冒号 (ASCII码值58)。它和数字58 没区别,看你输出时候把它作为什么输出的。作为%d输出,就是58。作为%c输出,就是冒号。
一般情况下,取余数函数默认输出是整数型,所以你会看到是数字,你可以把它强制作为字符型输出的话就能理解了。
#include <stdio.h>追问你好,a%10+'0'
a=13,是一个无符号字符型,按你说的a%10应该得到一个字符型的数字,这是要转化为整型应该-'0'才对啊
追答
字符型和整型、无符号整型都是数据类型,数字是数字,和类型没关系。这个不能搞混。
你说的 a%10+'0' 的 结果应该是'3' 或者可以说是51,(字符'3'的ASCII码的值是51)你说要把它转化为整型。是要-'0'啊,因为你a%10+'0' 的运算加了个'0'。你期望的输出是什么,然后具体问题具体分析。你说下你的demo和期望的结果,
热心网友 时间:2024-03-17 04:34
char型数字在内存中是以它的ASCII码的形式存放的,字符'0'的ASCII码值是48,char型数据可以
热心网友 时间:2024-03-17 04:34
因为求余运算的两个操作数,都得是int型。所以所得的余数也是int型。