本人不才,下面是本人的见解:因为ASCII值的大小为一个字节,即8个比特位,也就是图片中的8位储存单元;而整形类型的大小为四个字节,即32个比特位,也就是图片中的32位储存单元。解释完这个,就开始解决问题。第一个问题:不用纠结这个FATE,他就是定义了一个字符类型的变量,然后这个变量的名称是FATE;4个独立的码就是整形类型是四个字节,而字符类型是一个字节,所以一个整形类型可以分为四个字符类型。第二个问题:就是这个整形类型的变量中32位储存单元都有数字,但是将他强制类型转换为字符类型的时候,会进行切割,只要最后8位储存单元的数字,那么最后8为储存单元的值为字符’E'的ASCII值,则最后这个字符类型变量的值就是E。
这说白了就是
union CH
{
int val;
struct { char ch[4]; }
};
既可以看作一个整数,也可以看作4个字符。