在ASCII编码中, 0~9 的编码是 0x30~0x39, 所以当c在‘0'~'9'的范围中时,c - '0' 就相当于计算c的实际数值,例如 c 是 '1', 则 c - '0' = 1, 把字符值转为数字值了
#include
int main()
{
int a,b;
a=!0;
b=!!0;
printf("a=%d,b=%d\n",a,b);
return 0;
}
/*
输出结果:a=1,b=0
*/
扩展资料
0的ASCII码是30,就是先把30转变为与c一样的数据类型【30】,然后用c减去【30】
(1)+,—,*,/运算的两个数中有一个为float或double型,结果是double型,因为统一将所有float型数据都先转换为double型,然后进行运算。
(2)如果int型与float或double型数据进行运算,先把int型和float型数据转换为double
型,然后进行运算,结果是double型。
(3)字符(char)型数据与整型数据进行运算,就是把字符的ASCII代码与整型数据进行运算。字符型可以直接与整型数据进行运算。如果字符型数据与实型数据进行运算,则将字符的ASCII代码转换为double型数据,然后进行运算。 |