c++-蓝桥杯 十六进制转换成八进制

问题描述

蓝桥杯 十六进制转换成八进制

问题描述
  给定n个十六进制正整数,输出它们对应的八进制数。

输入格式
  输入的第一行为一个正整数n (1<=n<=10)。
  接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。

输出格式
  输出n行,每行为输入对应的八进制正整数。

  【注意】
  输入的十六进制数不会有前导0,比如012A。
  输出的八进制数也不能有前导0。

样例输入
  2
  39
  123ABC

样例输出
  71
  4435274

  【提示】
  先将十六进制数转换成某进制数,再由某进制数转换成八进制。

 ![图片说明](http://img.ask.csdn.net/upload/201602/16/1455627380_783805.png)
 ![图片说明](http://img.ask.csdn.net/upload/201602/16/1455627416_974764.png)

 测试对的 可是提交后却是零分,不懂哪里错了,求指导

解决方案

图片是这两张,不好意思啊

解决方案二:

你题目没有看清楚,十六进制数的最高位是100000位,也就是最大数是16^100001-1,这个数远远比int型能表示的最大数要大。
所以肯定不行。其次你的方法有一点投机取巧,利用c++本身的特点进行转化。建议使用字符串表示然后一个一个的将十六进制
数转化为八进制。

时间: 2024-11-01 01:53:36

c++-蓝桥杯 十六进制转换成八进制的相关文章

二进制-怎么用c语言实现十六进制转换成八进制?

问题描述 怎么用c语言实现十六进制转换成八进制? 提示是先把十六进制转换成二进制,再把二进制转换成八进制,求大神帮忙!! 解决方案 用不着任何转换. 计算机里面,都是二进制数. 以 16 进制数.八进制数显示,即可. 解决方案二: C语言自带进制转换函数atoi和itoa,可以直接调用,用法可搜索查阅.如果自己实现的话,参考链接:http://zhidao.baidu.com/link?url=C-58nz8p9AnCLmVquK__gfHMwafY3WWnw5vWvUMq255wMXYtkGd

c语言-c++ 进制转换由十六进制转换成二进制

问题描述 c++ 进制转换由十六进制转换成二进制 void change16_2() { printf("十六进制->二进制 "); int i,a,b,c,d,k; int x[3]; char m[3]={0,0,0},n[3]; printf("转换数(十六进制):"); scanf("%s",m); for(i=0;i { if(m[i]>='A'&&m[i]<='F') { x[i]=10+m[i]-6

用Linux/Unix命令把十六进制转换成十进制(转)

那天写个脚本,需要把十六进制的数字转成十进制的打出来,发现不知道要怎么弄,搜一下,原来还是很简单的,比用C语言什么的容易多了,就一些现成的命令就解决了. 先列两种简单的方法: 1) echo 自己就能实现,相当简单.不过,不知道如果要从十进制转换回十六进制能怎么写.     ]$ echo $((0xac))    172 2) printf 也可以哦,十六进制和十进制互相转换都没问题     ]$ printf %d 0xac    172    ]$ printf %x 172    ac 

请大能看看这段十进制转换成八进制的代码

问题描述 intamount;stringcurrent="";do{intnextDigit=amount%8;intdigitCode='0'+nextDigit;chardigit=Convert.ToChar(digitCode);current=digit+current;steps.Text+=current+"n";amount/=8;}while(amount!=0);我认为intdigitCode='0'+nextDigit;chardigit=C

蓝桥杯-基础练习12 十六进制转八进制

基础练习 十六进制转八进制 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由0~9.大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000. 输出格式 输出n行,每行为输入对应的八进制正整数. 注意 输入的十六进制数不会有前导0,比如012A. 输出的八进制数也不能有前导0. 样例输入 2 39 123ABC 样例输出 71 4435274 提示 先将十六进制数

十进制转换成十六进制和16进制转2进制的实现

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> int main() { int i,v; char bs[33]; char b[33]; char hs[9]; char h[9]; char s[4]; char *e; // 十进制整数转二进制串: i=1024; ltoa(i,b,2); sprintf(bs,"%032s&quo

科学知识:二进制、八进制、十进制、十六进制转换_其它综合

一. 十进制与二进制之间的转换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余,逆序排列,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数.下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(10101000) 第一步,将168除以2,商84,余数为0. 第二步,将商84除以2,商42余数为0.

字符编码-vc++编码问题!把十六进制字符串转换成文字!

问题描述 vc++编码问题!把十六进制字符串转换成文字! 假设我有一个cstring a=""1A 2B"" 如何转换成文字并赋值给另外一个cstring? 解决方案 char temp[100];char src[100];strncpy(src (LPCTSTR)a 100);for (int i = 0; i < (a.GetLength() + 1)/3; i++){ temp[i] = (char)(func(src[i * 3]) * 16 + f

c-十六进制转换成十进制,大神们帮忙解释一下while循环中的if语句意思

问题描述 十六进制转换成十进制,大神们帮忙解释一下while循环中的if语句意思 #include #include #include int main() { char a[9]; gets(a); int len,i=0; long long sum=0; double x; len=strlen(a); while(len) { if(a[len-1]>='A'&&a[len-1]<='F') x=(a[len-1]-'7')*pow(16,i++); else x=x=