编程题:加密数
有一个32位的int型的整数是一个加密数,它实际表示为另一个数,即将该数从高位至低位的每8位作为一个数(无符号)进行求和后的数。
如:65920,其在计算机内的二进制数表示为:
00000000 00000001 00000001 10000000
则该加密数表示为:
0+1+1+128=130
现有一组这样的数,将其解密后输出。
### 输入样例:
在这里给出一组输入。例如:
in
65920
-1
### 输出样例:
在这里给出相应的输出。例如:
out
130
1020
答案:若无答案欢迎评论
#include<stdio.h>
int main()
{
int n,d=255,sum=0;
while(scanf("%d",&n)!=EOF)
{
sum=0;
for(int i=0;i<4;i++)
{
sum+=n&d;
n=n>>8;
}
printf("%d\n",sum);
}
return 0;
}
如:65920,其在计算机内的二进制数表示为:
00000000 00000001 00000001 10000000
则该加密数表示为:
0+1+1+128=130
现有一组这样的数,将其解密后输出。
### 输入样例:
在这里给出一组输入。例如:
in
65920
-1
### 输出样例:
在这里给出相应的输出。例如:
out
130
1020
答案:若无答案欢迎评论
#include<stdio.h>
int main()
{
int n,d=255,sum=0;
while(scanf("%d",&n)!=EOF)
{
sum=0;
for(int i=0;i<4;i++)
{
sum+=n&d;
n=n>>8;
}
printf("%d\n",sum);
}
return 0;
}