2 条题解
-
1
#include <iostream> using namespace std; long long n; int a[15]; int main() { //将n按7位来分离,之后以10进制数字来保存 //同时来记录分离的个数 cin>>n; if(n == 0){ cout<<"00"<<endl; return 0; } int l = 0; while(n > 0) { //0111 1111 7f l++; a[l] = n & 0x7f; n = n >>7; } //将低位的每组都 最高位变为1 最后一组填0意味着不变 for(int i =1; i < l;i++) { a[i] = a[i] | 0x80; } //将每个a[i]转化位十六进制来输出 分为高4位和第四位 for(int i =1; i <= l;i++) { //cout<<a[i]<<endl; //将高四位与低四位分开 //高四位 >> 4 //低四位 & 0f int g4 = a[i] >>4; int d4 = a[i] & 0x0f; printf("%X",g4); printf("%X ",d4); } return 0; }
-
0
#include <iostream> using namespace std; void output_digit(int d) { if (d >= 10) cout << (char)('A' + d - 10); else cout << (char)('0' + d); } void output_code(int s) { output_digit(s >> 4); output_digit(s & 0x0f); } int main() { long long n = 0; cin >> n; int split[10]; int l = 0; while (n > 0) { split[l] = (int)(n & 0x7f); n >>= 7; l++; } for (int i = 0; i < l - 1; i++) split[i] |= 0x80; output_code(split[0]); for (int i = 1; i < l; i++) { cout << " "; output_code(split[i]); } cout << endl; return 0; }
- 1
信息
- ID
- 4886
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- 递交数
- 18
- 已通过
- 6
- 上传者