1500: 单位转换
1.描述
三师弟最近在复习考研,在复习计算机组成原理的时候,遇到了一个问题。就是在计算机存储里面的单位转换。我们都知道1MB=1024KB,1KB=1024B,1B=8bit,他在做题的时候经常会遇到格式各样的,比如多少MB,KB,B什么的,但是都要转换为bit,题目做的太多他都迷茫了,现在需要你通过程序来帮他解决这个问题。
输入
输入为多行未化简的数据,如xMB,xKB,xB,xbit,(1<=x<=50)
输出
输出为换算过后的数据,ybit
样例输入
1MB
1KB
1B
1bit
样例输出
8388608bit
8192bit
8bit
1bit
2.代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{char a[100],i,n;while(~scanf("%s",a)){int t=0;int x=strlen(a);if(a[x-1]=='B'){if(a[x-2]=='M'){for(i=x-3; i>=0; i--){a[i]=a[i]-'0';t+=a[i]*pow(10,x-3-i);}printf("%dbit\n",((t*1024)*1024)*8);}else if(a[x-2]=='K'){for(i=x-3; i>=0; i--){a[i]=a[i]-'0';t+=a[i]*pow(10,x-3-i);}printf("%dbit\n",(t*1024)*8);}else{for(i=x-2; i>=0; i--){a[i]=a[i]-'0';t+=a[i]*pow(10,x-2-i);}printf("%dbit\n",t*8);}}else{for(i=x-4; i>=0; i--){a[i]=a[i]-'0';t+=a[i]*pow(10,x-4-i);}printf("%dbit\n",t);}}
}