的二进制位数。
(2) 编写一个主函数,调用(1)中的四个函数,输出整型、长整型、无符号整型和字符型变量所分配存储空间的二进制位数。 方法说明:
以整型变量为例。
首先将该整型变量所占的存储空间中按位置1,即为该整型变量赋值-1。然后逐次将该值左移1位,并对移位次数进行计数,直到该值变为非负(即符号位为0)为止。最后的移位次数即是为整型变量所分配存储空间的二进制位数。
利用这种方法也可以确定长整型、无符号整型与字符型变量所占的二进制位数。 6. 设有下列C程序: #include
{ int a=0x95, b, c; b=(a & 0xf)<<4; c=(a & 0xf0)>>4; a=b | c;
printf(\ }
具体要求:
(1) 首先阅读分析上述程序。 如果系统为“算术右移”,则运行上述程序后,输出结果是什么? 如果系统为“逻辑右移”,则运行上述程序后,输出结果是什么?
(2) 然后将上述程序输入进计算机,实际运行上述程序。根据实际输出结果,如果系统为“算术右移”,则编写一个实现“逻辑右移”的函数;如果系统为“逻辑右移”,则编写一个实现“算术右移”的函数。
(3) 将上述程序中实现“右移”的操作改为调用自己编写的“算术右移”函数,并运行该程序。
(4) 将上述程序中实现“右移”的操作改为调用自己编写的“逻辑右移”函数,并运行该程序。