题意:给t组数据,每组数据一个字符串,对于每组数据先输出其字符串长度len,先将十进制的len转为二进制,取其后7位,前面有1剩余把1放在后七位的前面构成8位,按次序输出,输完len后,字符串转化为16进制输出。
关键在于读题。
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; char a[5000010]; int main() { int t; while(scanf("%d",&t)!=EOF) { getchar(); while(t--) { gets(a); int len=strlen(a); int l=len; if(len==0) printf("00\n"); else { while(l) { int tmp=l%128; l/=128; if(l) { tmp+=128; } printf("%02X",tmp); } for(int i=0; i<len; i++) printf("%02X",a[i]); printf("\n"); } } } return 0; }
原文:http://blog.csdn.net/dominating413421391/article/details/43378709