C语言char类型与int类型之间的转换

想知道C语言char类型和int类型之间是如何转换的,字母之间可以通过ASCII码可以转换,但相关运算如何得出?结果转成二进制将其右移得出结果吗?结果是10。希望大家指导一下

img

其实,不需要把这些数据类型分的这么”死“。
比如说内存中8位的unsigned char,这里的a。内存中是11101011。这8bit内容是确定的,但是你如何去看待它,使用它,这时由你自己决定的。这里把他看作字符,就是ASCLL码为235的那个字符;把它看作无符号数,就是235;把它看作有符号数,就是-21。这里定义虽然定义为unsigned char,但并不妨碍你把它当其他东西用。

你把它想象成8bit的整数计算就可以了

img


定义的unsigned char类型取值范围是0-255,不能用于存储负数,强行赋值负数存储空间会按照负数存储,但是你取值他还是按你定义类型去取值的,比如unsigned char赋值-1的话其实是255,不过unsigned char赋值个-235没想明白符号位去哪了