16进制转为8进制

//十六进制转8进制
#include<iostream>

using namespace std;

int main(void)
{
 int n;
 scanf("%d",&n);
 while(n--)
 {
  string s1,s2;
  cin>>s1;
  for(int i=0;i<s1.length();i++)
  {
   switch(s1[i])
   {
    case ‘0‘:s2+="0000";break;
    case ‘1‘:s2+="0001";break;
    case ‘2‘:s2+="0010";break;
    case ‘3‘:s2+="0011";break;
    case ‘4‘:s2+="0100";break;
    case ‘5‘:s2+="0101";break;
    case ‘6‘:s2+="0110";break;
    case ‘7‘:s2+="0111";break;
    case ‘8‘:s2+="1000";break;
    case ‘9‘:s2+="1001";break;
    case ‘A‘:s2+="1010";break;
    case ‘B‘:s2+="1011";break;
    case ‘C‘:s2+="1100";break;
    case ‘D‘:s2+="1101";break;
    case ‘E‘:s2+="1110";break;
    case ‘F‘:s2+="1111";break;
    default:break;
   }
  }
  
  if(s2.length()%3==1)
      s2="00"+s2;
  else if(s2.length()%3==2)
      s2="0"+s2;
  int flag=0;
  for(int i=0;i<s2.length();i+=3)
  {
   int m=(s2[i]-‘0‘)*4+(s2[i+1]-‘0‘)*2+(s2[i+2]-‘0‘)*1;
   
   if(m!=0||flag!=0)
       printf("%d",m);
   flag++;
   }
  printf("\n");
  }
  return 0;
}

原文地址:https://www.cnblogs.com/cxwpluto/p/12432520.html

时间: 2024-11-09 00:54:08

16进制转为8进制的相关文章

C语言将10进制转为2进制

第一种方法: #include<stdio.h> void dectobin(int n); int main() { int x=0; scanf("%d",&x);//只能正数 dectobin(x); printf("\n"); return 0; } void dectobin(int n) { if(n/2>0) { dectobin(n/2); printf("%d",n%2); } else { print

8进制转为10进制(java)

package acm; import java.util.Scanner; public class L3_2 { /**   * @param args   */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); int a[]=new int[1000]; int n=scan.nextInt(); int i=0;

16进制转8进制

题目 将16进制数,转化为8进制数,第一行n是16进制数的个数,接下来n行对应n个16进制数,输出n行对应8进制数 数据规模 :1<=n<=10,16进制数的个数<=100000 举例: 输入: 2 39 123ABC 输出: 71 4435274 思路 先将16进制数转化为2进制,再由2进制转为8进制.之所以转为2进制,是因为2进制和16.8进制之间的转化相对容易.所以总的来说,只要解决2进制和两个进制之间的转换问题就解决了. 代码 代码里有注释,很清楚了 #include <i

java 16进制转换10进制

public static String toHexString2(byte[] b) { StringBuffer buffer = new StringBuffer(); for (int i = 0; i < b.length; ++i) { buffer.append(toHexString2(b[i])); } return buffer.toString(); } public static String toHexString2(byte b) { char[] buffer =

QT 16进制 ASII &nbsp; 10进制 转换

 //16进制字符串转字节数组     static QByteArray HexStrToByteArray(QString str)     {         QByteArray senddata;  //发送数据         int hexdata,lowhexdata;         int hexdatalen = 0;         int len = str.length();  //求出发送字符传唱度         senddata.resize(len/2); /

2进制,8进制,16进制转10进制的自定义函数

1.2进制转10进制自定义函数: function DecToInt(temp:string):integer; //2进制转10进制var  i,j  : Integer;begin  result := 0;  j   := Length(temp);  //取得字符串长度:  for I := 0 to Length(temp)-1 do  begin    result := result+strtoint(Copy(temp,j,1))*Trunc(power(2,I));  //Tr

Java 10进制转2、8、16进制转换 / 2、8、16进制转10进制转换

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

16进制与10进制

16进制 0 1 2 3 4 5 6 7 8 9 a b c d e f. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 0 1 2(16进制中的10 进制表象,进位后,前边一位)10进制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20我们的计算机中一般都以16进制保存.我们用的时间就是这种60进制中的10进制表象.

PHP进制转换[实现2、8、16、36、64进制至10进制相互转换]

自己写了一个PHP进制转换程序,一个类吧,第一次写这个东东,写这个东东,在处理文本文件时能用得到. 可以实现: 10进制转换2.8.16.36.62进制2.8.16.36.62进制转换10进制 有点要注意下,2.8.16进制转换时,使用的是系统的自己的函数. 所以,不管怎么高精度转换值可能大于2147483646. 另外, 32进制低精转换,最大值:2147483646: 32进制高精转换,最大值:77309411327: 64进制高精转换,最大值:133143986175. jinzhi.ph