编写一个函数 int_shifts_are_arithmetic(), 若机器对int使用算术右移,返回1.否则返回0.
说明:(sizeof(int))<<3 可求出机器中int类型的位数.算法中求出:把-1右移(sizeof(int)-1)<<3位。即把-1的最高有效字节移到最右端。因为-1<0,则其余位填充0(若逻辑右移)或1(若算术右移)。把结果和0x10进行与运算,可提取出从右往左数第2个字节的最低位,从而可以进行判断。
编写一个函数 int_shifts_are_arithmetic(), 若机器对int使用算术右移,返回1.否则返回0.
说明:(sizeof(int))<<3 可求出机器中int类型的位数.算法中求出:把-1右移(sizeof(int)-1)<<3位。即把-1的最高有效字节移到最右端。因为-1<0,则其余位填充0(若逻辑右移)或1(若算术右移)。把结果和0x10进行与运算,可提取出从右往左数第2个字节的最低位,从而可以进行判断。