二进制转化为十六进制
来源:互联网 发布:威斯汀酒店知味餐厅 编辑:程序博客网 时间:2024/05/22 15:58
二进制转化为十六进制
时间限制: 3 Sec 内存限制: 64 MB提交: 433 解决: 45
[提交][状态][讨论版]
题目描述
输入一个2进制的数,要求输出该2进制数的16进制表示。 在16进制的表示中,A-F表示10-15
输入
第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个以0和1组成的字符串,字符串长度至少是1,至多是10000
输出
n行,每行输出对应一个输入。 输出没有前导的0。
样例输入
2100000111
样例输出
207
提示
来源
百练2798,测试数据 by 09游戏张文君
这题的实现不难,只是要注意一下变态的数据,输入00000时应该输出0,要是漏了这步就会变为00就会Wa。
二进制化十六进制直接拿二进制的四位就是十六进制的一位。
AC代码:
#include <iostream> #include <cstring>using namespace std; const int t=20000000; char a[t],b[t]; int val(int j){int sum=0,k=j-4;if(j-4<0)k=0;//相当于不够四位的补位操作for (int i=k;i<j;i++) //二进制四位转十进制的数{ if (a[i]=='0') { sum*=2; } else{ sum=sum*2+a[i]-'0'; } } return sum;}int main() { int n=2,tt,m=15,i,j,len,f; cin >> f;cin.get();while(f--){cin.getline(a,t);len=strlen(a);j=0;while(len>=4){tt=val(len);if(tt>=0&&tt<=9)//转十六进制b[j++]=tt+'0';elseb[j++]=tt+55;len-=4;}if(len)//还有小于四位的二进制数b[j++]=val(len)+'0';len=j-1;while(b[len]=='0'&&len>0)//排除多个0的情况{len--;}for(i=len;i>=0;--i){cout << b[i];}cout << endl;}return 0; }
0 0
- 十六进制转化为二进制
- 二进制转化为十六进制
- 二进制转化为十六进制
- 汉子转化为十六进制和二进制
- 二进制 八进制 十六进制转化为十进制
- 十进制转化为二进制和十六进制
- 将十进制转化为十六进制和二进制
- 将十进制转化为二进制、八进制、十六进制
- 十进制转化为二进制,八进制,十六进制
- java--十进制转化为二进制、十进制转化为十六进制、查表法十进制--十六进制、查表法十进制二进制、
- 十进制实数转化为二进制、八进制、十六进制的实数
- 十进制转化为二进制和十六进制的字符串
- php 把十六进制转化为二进制生成图片
- iOS 将十进制转化为十六进制、十进制转二进制
- 十进制转化为二进制与十六进制显示(汇编程序)
- java十六进制转化为其他进制 二进制转化为其他进制 十进制转化为其他进制案例
- 十六进制与二进制转化关系
- 二进制,十进制,十六进制互相转化
- nyoj 587 blockhouses 【简单DFS】
- Matlab之print,fprint,fscanf,disp函数
- IDL save postscript file
- openstack学习笔记----devstack安装过程中Access denied for user 'root'@'localhost' (using password: YES)解决方案
- leetcode 39 : Combination Sum
- 二进制转化为十六进制
- 黑马程序员-----网络编程
- MySql语句大全:创建、授权、查询、修改等
- iOS_深入_UINavigationController VS UIViewController _利用分栏控制器切换视图
- Summary Ranges
- Spark学习
- #define中字符串连接操作符##
- C语言指针数组
- STL系列之map(映射)