程序填空题:利用C语言程序输出某些特定的数字
这是一道利用C语言程序输出某些特定的数字,以复习计算机组成原理中常见的概念。
(1)输出整数a的补码(十六进制,前缀带0x;**若a的值为0则直接输出0**);
(2)输出单精度浮点数对应的IEEE754标准编码十进制数;
(3)保留整数c第3位到第6位的结果,其他位全部置0,输出变换后的十进制数(设最低位为第1位);
(4)将整数c第3位到第6位全部置1,其他位全部保留,输出变换后的十进制数(设最低位为第1位);
(5)判断a乘以c的符号,如果是乘积为正则输出0;如果是乘积为负则输出1。
### 温馨提示:
![布尔运算.png](~/e521558b-f78d-4468-8777-e02700417930.png)
表2 移位运算符
![移位.png](~/f649b3c9-b9cc-4cb5-aa05-64b865255b9d.png)
c++
#include<stdio.h>
int main()
{
int a;
float b;
int c ;
while(~scanf("%d %f %x",&a,&b,&c))
{
printf("\n",a);
printf("%d\n",b);
printf("%d\n",c);
printf("%d\n",c);
printf("%d\n",(a^c));
}
return 0;
}
#### 输入样例
**-1 11.375 0x8fa**
#### 输出样例
0xffffffff
1094057984
56
2302
1
答案:
第1空:%#x
第2空:*(int*)&
第3空:0x3c&
第4空:0x3c|
第5空:>>31&0x1
(1)输出整数a的补码(十六进制,前缀带0x;**若a的值为0则直接输出0**);
(2)输出单精度浮点数对应的IEEE754标准编码十进制数;
(3)保留整数c第3位到第6位的结果,其他位全部置0,输出变换后的十进制数(设最低位为第1位);
(4)将整数c第3位到第6位全部置1,其他位全部保留,输出变换后的十进制数(设最低位为第1位);
(5)判断a乘以c的符号,如果是乘积为正则输出0;如果是乘积为负则输出1。
### 温馨提示:
![布尔运算.png](~/e521558b-f78d-4468-8777-e02700417930.png)
表2 移位运算符
![移位.png](~/f649b3c9-b9cc-4cb5-aa05-64b865255b9d.png)
c++
#include<stdio.h>
int main()
{
int a;
float b;
int c ;
while(~scanf("%d %f %x",&a,&b,&c))
{
printf("\n",a);
printf("%d\n",b);
printf("%d\n",c);
printf("%d\n",c);
printf("%d\n",(a^c));
}
return 0;
}
#### 输入样例
**-1 11.375 0x8fa**
#### 输出样例
0xffffffff
1094057984
56
2302
1
答案:
第1空:%#x
第2空:*(int*)&
第3空:0x3c&
第4空:0x3c|
第5空:>>31&0x1