1.float 类型(即 IEEE754 单精度浮点数格式)能表示的最大整数是多少?
答案:2^ 128-2^ 104
32位=1位符号位+8位指数位+23位小数位
指数范围-128至127,小数位23位,则最大数为1.11111111111111111111111*2^ 127=(2-2^ -23)*2^ 127=2^ 128-2^ 104
2.定义下面的宏,则DECLARE(val, int)替换结果为?
#define DECLARE(name, type) type name##_##type##_type
答案:int val_int_type
##是一种分隔连接方式,它的作用是先分隔,然后进行强制连接
所以预处理器会把name## _ ##type## _ type解释成4段:“name”、“_”、“type”以及“_type”,name和type会被替换,而_type不会被替换
3.以下的变量定义语句中,合法的是?
A.byte a =128;
B.boolean b =null;
C.long c=123L;
D.float d = 0.9239;
答案:C
A:byte能表示的范围是[-128,127]
B:boolean的取值只能是true或false
D:0.9239默认为double类型,所以改为float d = 0.9239f;是对的,或者double d