题目描述
存储单元一般应具有存储数据和读写数据的功能,以8位二进制作为一个存储单元,也就是一个字节。每个单元有一个地址,是一个整数编码,可以表示为二进制整数。程序中的变量和主存储器的存储单元相对应。变量的名字对应着存储单元的地址,变量内容对应着单元所存储的数据。存储地址一般用十六进制数表示,而每一个存储器地址中又存放着一组二进制(或十六进制)表示的数,通常称为该地址的内容。
现在给你一个变量的十进制地址,请你输出他的2进制表示方法
输入
多组输入,每行一个整数n, 表示变量的十进制地址 ( 0<=n<=2147483647)
输出
每行输出该变量的2进制地址, 总长度32位, 不足的位数使用数字0填充, 每8位使用空格分隔,具体看样例输出
样例输入
5
10
2200
4396
样例输出
00000000 00000000 00000000 00000101
00000000 00000000 00000000 00001010
00000000 00000000 00001000 10011000
00000000 00000000 00010001 00101100
提示
多组输入, 输出的最后没有空格
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
int n,i,t;
char str[35];
while(scanf("%d",&n)!=EOF){
memset(str,'0',sizeof(str));
str[8]=' ';
str[17]=' ';
str[26]=' ';
for(i=34;n!=0;i--){
if(i==26||i==17||i==8)i--;
if(n%2==0)
str[i]='0';
else
str[i]='1';
n=n/2;
}
for(i=0;i<35;i++)
printf("%c",str[i]);
printf("\n");
}
return 0;
}