16进制转8进制(一般数据)
十六进制转八进制(只能处理一般数据,变态数据版本稍后发)
最近写蓝桥杯的题目,有道题是将16进制转成8进制,写出来之后不通过,查看了一下题目的测试数据,我就怒了,感觉出题人很皮呀,但是辛辛苦苦写出来的代码也不是说不能用,就是对付测试数据有点。。。。。。只能说没脾气了,但是一般的数据还是能通过的,之后再将对付变态数据的代码发出来,废话不多说了,贴代码
一、代码
#include<iostream>
#include<cmath>
#include<string>
#include<vector>
using namespace std;int toDec(string str) {int len = str.length();int i = 1, dec = 0;//这里本来可以用增强for来简化代码,无奈蓝桥杯练习系统不支持for (int j = 0; j < len; j++) { //这里是将16进制转成10进制的具体方法if (str[j] >= '0' && str[j] <= '9') {dec += ((str[j] - '0') * pow(16, (len - i)));}else if ((str[j] >= 'a' && str[j] <= 'z') || (str[j] >= 'A' && str[j] <= 'Z')) {dec += ((str[j] - 'A' + 10) * pow(16, (len - i)));}i++;}return dec;
}string toOct(int num) {string s = "";while (num != 0) { //这里是将10进制转成8进制的具体方法string c = "";c += ('0' + (num % 8));s.insert(0, c);num /= 8;}return s;
}int main()
{int n;cin >> n; //请输入有几组数据cin.get(); //将cin >> n后面的回车符号读取了vector<string> vs;string sbuf;while (n--) { //具体的输入数据getline(cin, sbuf);vs.push_back(sbuf);}for (vector<string>::iterator it = vs.begin(); it != vs.end(); ++it) {int ibuf = toDec(*it); //先将16进制转成10进制*it = toOct(ibuf); //再将10进制转成8进制cout << *it << endl; //直接输出}return 0;
}
16进制转8进制(一般数据)相关推荐
- python 16进制转10进制, 8进制转10进制, 2进制转10进制的方法
python 16进制转10 进制, 8进制转10进制, 2进制转10进制 可以使用系统自带的 int 方法 具体如下: value = "0x1388" result = int ...
- 10进制转16进制,16进制转10进制,随机出一个6位十六进制颜色值
方案一: var num16 = "ffffff";var num10 = parseInt(num16,16);//16进制转10进制console.log(num10) // ...
- 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 ...
- python16进制转10进制_python 字节串及10进制,16进制相关转换
进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 整数之间的进制转换: 10进制转16进制: hex(16) ==> 0x10 16进制转10进制: in ...
- 关于物联网的各种转换,16进制 二进制 10进制 效验总结
字符串插入字符 /// <summary>/// 每隔n个字符插入一个字符/// </summary>/// <param name="input"& ...
- 16进制数组转成10进制 qt_QT 16进制 ASII 10进制 转换
//16进制字符串转字节数组 static QByteArray HexStrToByteArray(QString str) { QByteArray senddata; //发送数据 int h ...
- 负数补码(16进制转10进制的负数)
假如我想通过modbus tcp接收设备上传的报文,该设备显示为负数,但报文上无法解析出来(温度报文异常,负数无法显示与转换).这时候,我就需要对这个报文进行负数补码形式,16进制转10进制的负数. ...
- c# .net 16进制转换10进制
业务调用 #region C#十六进制字符串转十进制 { Console.WriteLine("-----------十六进制字符串转十进制---------");//H:十六进制 ...
- 蓝桥杯基础之16进制、10进制、8进制、2进制换算总结
常用函数的一些小总结 string to int(字符串转到int类型) #include<sstream> //重要的库 #include<iostream> #includ ...
- Java10进制转16进制,16进制转10进制
1.Java10进制转16进制 /** 卡号位数:8 */public static byte CARD_NUM_BIT = 8;/*** isBlank * * @param value* @ret ...
最新文章
- memmove, memcpy 的mem魔法
- SQL Server 2005系列教学_用户管理
- jQuery之文本框得失焦点
- jsp访问java方法_JSP基础知识之访问JavaBean的方法
- 我34岁,曾月入10万,给前员工修汽车
- 微信公众帐号开发教程第12篇-符号表情的发送(下)
- MyEclipse或Eclipse中工程的导入和导出
- 迹中元素可交换性的证明tr(AB)=tr(BA)
- was控制台的用户和密码怎样加密使用_交换机密码忘记了,怎么办,密码恢复一分钟了解下...
- 易筋SpringBoot 2.1 | 第十七篇:SpringBoot的事务Transaction
- 2022考研复习第二十三周
- opencv 特征提取 -SIFT
- Linux 实现OpenSSL 服务器端客户端通信
- ESP32内部ADC最大采样率真的能达到2MSPS吗?答案是不能。
- 2023年全国最新二级建造师精选真题及答案49
- 贝叶斯基础理论及思想介绍
- Andorid实例--仿外卖APP(未完成)
- 带字幕的Youtube
- M8W2 | 每周新产品体验
- linux wps 运行et,在Linux系统中安装使用WPS的方法