题目描述

二进制数据是用 0 和 1 两个数码来表示的数.它的基数为 2 ,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现.
十六进制(简写为hex或下标 16 )在数学中是一种逢 16 进 1 的进位制.一般用数字 0 到 9 和字母 A 到 F(或 a ~ f )表示,其中: a ~ f 表示 10 ~ 15 ,这些称作十六进制数字.
请将给定的二进制数转为十六进制数,英文字母使用小写形式.

输入

第一行一个正整数 T, 代表有 T 组测试数据. (1≤T≤10).
接下来 T 行,每行输入一串只包含 0 和 1 的字符串(无前导 0),字符串长度:1≤length≤106.

输出

对于每组测试样例,输出转化后的十六进制数并单独占一行.

样例

input

2
1
10

output

1
2

思路:

刚开始的想法是输入一个字符串,然后从后往前依次转换,先转换成十进制,然后再以十六进制数出,最后发现还是想的太简单了,数据范围有点大,转换成十进制有可能溢出。所以按照2进制转16进制每四位2进制对应一位16进制来转换就过了。

参考代码:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char str[1000009];
int num[1000009];
int main()
{int t;cin>>t;while(t--){cin>>str;int len=strlen(str);int cnt=0;int ans[10000];memset(ans,0,sizeof(ans));for(int i=0;i<len;i++)num[i]=str[i]-'0';for(int i=len-1;i>=0;){int f=1,sum = 0, n = 4;while(n--){if(i<0)break;sum+=num[i]*f;f*=2;i--;}ans[cnt++]=sum;}for(int i=cnt-1;i>=0;i--)printf("%x",ans[i]);printf("\n");}return 0;
}

进制转换--2进制转16进制相关推荐

  1. C++实现10进制转换2,8,16进制

    C++实现10进制转换2,8,16进制 (1)使用c++实现10进制int型转换到2,8,16进制,其中int型最大值为2147483647,所以输入转换的数不能大于该数. (2)使用数组进行转换时使 ...

  2. java 10zhuan8,Java代码 10进制转2、8、16进制转换 / 2、8、16进制转10进制转换

    public static void main(String[] args) { int i = 10; System.out.println("***********10进制转换2进制.8 ...

  3. java 颜色 16进制转换_Java中Color和16进制字符串互相转换的方法

    1.原理 主要是调用了toHexString(将int类型转为16进制字符串).parseInt(将字符串解析为int)这两个方法. 2.代码 public static void main(Stri ...

  4. html进制转换js代码,JS中的进制转换以及作用

    js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()即可实现: 运行下面代码 //10进制转为16进制 (10).toString(16) ...

  5. 5.IDA-文本搜索、二进制搜索(16进制字节序列)、替换16进制

    1.文本搜索 IDA文本搜索相当于对反汇编列表窗口进行子字符串搜索.通过Search▶Text(热键:ALT+T)命令启动文本搜索 选择Find all occurences(查找所有结果),IDA将 ...

  6. C++ 链栈实现10进制转换为2、8、16进制(详细)

    代码实现         (程序中已详细注释,这里不再重复说明,有疑惑可留意哦) //导入头文件 #include<iostream> #include<stdio.h> #i ...

  7. 计算机中各种数制间的转化(10进制与2、8、16进制之间的快速转化)

    最近看数据结构的书,回顾下以前学的东西.无意间翻到了stack这章,我就在想,为什么要使用栈这种数据结构?它的底层不也就是数组或者链表来实现的吗?于是,希望能从书中找到答案(其实我之前也猜想,无非是和 ...

  8. 汉字转换成html,汉字与16进制、汉字与Html转义符的转换

    汉字与16进制.汉字与Html转义符的转换 package test; import java.io.UnsupportedEncodingException; import java.net.URL ...

  9. iOS开发时间戳与时间,时区的转换,汉字与UTF8,16进制的转换

    转自:http://blog.sina.com.cn/s/blog_68661bd80101njdo.html //获取当前系统的时间戳 +(long)getTimeSp{     long time ...

  10. 汉字转16进制 php,php中文汉字与16进制编码转换三种方法

    用php实现中文汉字与16进制间的编码转换. 例1, 复制代码 代码示例: //汉字转换为16进制编码 function hexencode($s) { return preg_replace('/( ...

最新文章

  1. Recyclerview设置间距
  2. SESSION跟COOKIE
  3. 2017/05/07 java 基础 随笔
  4. html游戏禁止微信浏览器下拉,JavaScript实现禁止微信浏览器下拉回弹效果
  5. c语言二维数组表示坐标,c语言多维数组地址的表示方法
  6. Ubuntu GNOME 15.10升级16.4LTS
  7. 【51nod - 1073】约瑟夫环问题模板
  8. 40vf什么意思_变频器的VF模式是什么意思?VF什么意思
  9. iOS:给图片置灰色
  10. 基于数值数据理解和重要信息验证的数据到文本生成模型
  11. TK mybatis 逆向工程
  12. 郑州学python哪个机构好_郑太高铁线路图_郑太高铁站点_【高铁网】_郑太高铁时刻表_郑太高铁通车时间...
  13. Jackson 学习笔记 XML转JSON
  14. 一文搞懂HTTP协议(带图文)
  15. linux bluefish制作网页,基于Linux文本模式的网页编辑器Bluefish
  16. mysql双主复制模式_mysql复制模式第二部分-----双主模式
  17. 若依(RuoYi)配置教程
  18. 【SSLGZ 2812】2017年10月30日提高组T2 凤凰院真凶
  19. 【IOS学习之工具学习】sublime text mac(代码编辑器)
  20. 带图片的日历html,HTML漂亮的日历插件

热门文章

  1. django静态页面
  2. Cesium 地形图
  3. IT人才外包服务的好处?
  4. Python爬取满7天赎回零费率基金:短线基金定投
  5. 上千个游戏模型推荐 好用又实用,流行又火爆的都在这里
  6. ajax读取txt出现乱码问题,ajax读取txt文本时乱码的解决方案
  7. 纯CSS中的可视数据库库
  8. 计算机编程实训视频教程,C++网络编程实践视频教程 共84节课 陈硕主讲
  9. Mach Operating System
  10. 工控网络安全学习路线