1.基本数据类型包括哪两种方式?
答:一个是自动类型转换,一个是强制类型转换。在自动类型转换中,如果计算时的存储方式相同,那么字节少的会向字节多的存储;如果是定点存储与浮点存储混合,那么会议浮点存储为主;如果是有符号与无符号混合,有符号的会存储到无符号的。强制类型转换就是人为的将数据转换为其他数据类型,例如(double)7,就是将int类型的7转换为double类型。
2. 3+4.F+5LL表达式结果的数据类型?
答:首先分析表达式中各数据的数据类型,3为int型;4.F为float类型;5LL为long long类型。其中int类型与long long类型都为定点存储,float类型为浮点存储。所以根据自动类型转换规律可知,此表达式结果为float类型。
3. char a=-1;a/2的结果?
答:在10进制中,我们都知道-1/2=-0.5,因为计算结果为定点存储,所以会舍弃小数,那么结果就为0;在二进制下,我认为可以这么理解,先不考虑符号位,让a=1,二进制就是0000 0001,除以二就是向右移动1位前方补0变为0000 0000,最后再将负号补上也可以得到结果为0.
4.unsigned char a=-1;a/2的结果?
答:因为-1在计算机中的存储数据为1111 1111,且a/2的过程就相当于缩减一位数,也就是向右移动一位前方补0变为0111 1111,通过计算可得结果为127.