精华内容
下载资源
问答
  • 十进制转换成十六进制

    千次阅读 2015-02-27 10:21:11
    十六进制的计数方法是满161,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。  给出一个非负整数,将它表示成十六进制的形式。 输入格式
    问题描述
      十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。
      给出一个非负整数,将它表示成十六进制的形式。
    输入格式
      输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647
    输出格式
      输出这个整数的16进制表示
    样例输入
    30
    样例输出
    1E

    /*十六进制转化成十进制*/

    #include <stdio.h>

    char string[100];

    int main(int argc, char ** argv){

        int n, i = 0;

        while (scanf("%d", &n) == 1) {

            if (n == 0) {

                printf("%d",n);

            }

            while (n != 0) {

                if (n % 16 >= 0 && n % 16 <= 9) {

                    string[i] = n % 16 + '0';

                }else{

                    string[i] = n % 16 + 'A' -10;

                }

                n /= 16;

                i++;

            }

            i--;

            for (; i >= 0; i--) {

                printf("%c", string[i]);

            }

        }

        return 0;

    }

    /*

     总结:

     1.不要忘记考虑n为零的时候

     2.将整数转换成字符的时候注意分情况进行讨论

     */


    展开全文
  • 10.基础练习 十进制转十六进制 /*问题描述十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满161,...

    10.基础练习 十进制转十六进制  

    /*问题描述
    十六进制数是在程序设计时经常要使用到的一种整数的表示方式。
    它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。
    十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,
    以此类推,十进制的30在十六进制中是1E。
    给出一个非负整数,将它表示成十六进制的形式。
    输入格式
    输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647
    输出格式

    输出这个整数的16进制表示*/

    //直接调用了java中的进制转换的方法

    import java.util.Scanner;
    public class Main {
    public static void main(String[] args) {
    Scanner scan=new Scanner(System.in);
    long a=scan.nextLong();
    System.out.println(Long.toHexString(a).toUpperCase());
    }
    }

     11.基础练习 十六进制转十进制 

    /*问题描述
    从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。

    注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。*/

    //直接调用了java中的进制转换的方法

    import java.util.Scanner;
    public class Main11 {
    public static void main(String[] args) {
    Scanner scan=new Scanner(System.in);
    String s=scan.nextLine();
    System.out.println(Long.valueOf(s, 16).toString());
    }
    }
    展开全文
  • 10:十进制转十六进制 问题描述:  十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满161,所以...

    10:十进制转十六进制

    问题描述:

      十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。
      给出一个非负整数,将它表示成十六进制的形式。

    输入格式:输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647

    输出格式:输出这个整数的16进制表示

    样例输入:

            30

    样例输出

            1E

    ----------------------------------------------------

    思路:

           十进制转换为k进制可采用除k取余法。

           需要注意的是:这里越早得到的数字其数位越低,因此应对得到的字符串进行倒置处理。

    代码示例:

    import java.util.*;
    
    public class Main {
    	public static void main(String[] args) {
    		Scanner in = new Scanner(System.in);
    		long n = in.nextLong();
    		in.close();
    		
            // 用数组保存十六进制下0-15相应的字符
    		char[] a = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    		
    		StringBuilder s = new StringBuilder();
    		
    		if (n == 0)
    			s.append("0");
    		
    		while (n != 0) {
    			s.append(a[(int)n%16]);
    			n /= 16;
    		}
    		s.reverse();
    		System.out.println(s);
    	}
    }

     

    11:十六进制转十进制

    问题描述:

      从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
      注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。

    样例输入:

            FFFF

    样例输出:

            65535

    --------------------------------------------------------------------------------------------------

    思路:

            k进制转换为十进制,即求 当前位数字 * 进制基数 * 数位权重 之和。

           例如:1E = E(14)*16^0 + 1*16^1 = 14 + 16 = 30

    代码示例:

    import java.util.*;
    
    public class Main {
    	public static void main(String[] args) {
    		Scanner in = new Scanner(System.in);
    		StringBuilder s = new StringBuilder(in.nextLine());
    		in.close();
    		
    		long rel = 0;
    		s.reverse();
    		for (int i=0; i<s.length(); i++) {
    			char c = s.charAt(i);
    			int temp = c-'0';
    			
                // 用来判断这一位的字符是0-9还是A-F('A'-'0'=17)
    			if (temp < 16) {
    				rel += temp * Math.pow(16, i);
    			}
    			else {
    				rel += (temp-7) * Math.pow(16, i);
    			}
    		}
    		
    		System.out.println(rel);
    	}
    }
    

     

    12:十六进制转八进制

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

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

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

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

    样例输入
      2
      39
      123ABC

    样例输出
      71
      4435274

    ---------------------------------------------------------------------------------

    思路:
      先将十六进制数转换成二制数,再由二进制数转换成八进制。

           需要注意的是:每1位十六进制数可以转换为4位二进制数,而3位二进制数可以转换为1位八进制数。

    代码示例:

    import java.util.*;
    
    public class Main{
        // 将十六进制转换为二进制
    	private static StringBuilder toBinary(String strHex) {  
            StringBuilder strBin = new StringBuilder();
            
            for (int i=0; i<strHex.length(); i++){
            	char c = strHex.charAt(i);
                switch (c) {
                    case '0':
                    	strBin.append("0000");
                    	break;
                    case '1':
                    	strBin.append("0001");
                    	break;
                    case '2':
                    	strBin.append("0010");
                    	break;
                    case '3':
                    	strBin.append("0011");
                    	break;
                    case '4':
                    	strBin.append("0100");
                    	break;
                    case '5':
                    	strBin.append("0101");
                    	break;
                    case '6':
                    	strBin.append("0110");
                    	break;
                    case '7':
                    	strBin.append("0111");
                    	break;
                    case '8':
                    	strBin.append("1000");
                    	break;
                    case '9':
                    	strBin.append("1001");
                    	break;
                    case 'A':
                    	strBin.append("1010");
                    	break;
                    case 'B':
                    	strBin.append("1011");
                    	break;
                    case 'C':
                    	strBin.append("1100");
                    	break;
                    case 'D':
                    	strBin.append("1101");
                    	break;
                    case 'E':
                    	strBin.append("1110");
                    	break;
                    case 'F':
                    	strBin.append("1111");
                    	break;
                    default:
                    	break;
                }
            }
            return strBin;
        }
    	
        // 将二进制转换为八进制
    	private static StringBuilder toOctal(StringBuilder strBin) {
            StringBuilder strOct = new StringBuilder();
            
            for (int i=0; i<strBin.length(); i+=3) {
            	String temp = strBin.substring(i, i+3);
            	
                switch (temp) {
                    case "000":
                    	strOct.append("0");
                    	break;
                    case "001":
                    	strOct.append("1");
                    	break;
                    case "010":
                    	strOct.append("2");
                    	break;
                    case "011":
                    	strOct.append("3");
                    	break;
                    case "100":
                    	strOct.append("4");
                    	break;
                    case "101":
                    	strOct.append("5");
                    	break;
                    case "110":
                    	strOct.append("6");
                    	break;
                    case "111":
                    	strOct.append("7");
                    	break;
                    default:
                    	break;
                }
            }
            return strOct;
        }
    	
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            int n = in.nextInt();
            
            String[] strHex = new String[n];
            for (int i=0; i<n; i++) {
                strHex[i] = in.next();
            }
            in.close();
            
            for (int i=0;i<n;i++) {
                StringBuilder strBin = toBinary(strHex[i]);
                int l = strBin.length();
                
                // 不足三位时用零补足
                if (l%3 == 1) {
                	strBin.insert(0, "00");
                }
                if (l%3 == 2) {
                	strBin.insert(0, "0");
                }
                
                StringBuilder strOct = toOctal(strBin);
                // 去掉前导位的0
                if (strOct.charAt(0) == '0') {
                	
                	strOct.deleteCharAt(0);
                }
                System.out.println(strOct);
            }
        }
    }

     

    展开全文
  • 进制转换:十进制转十六进制数 问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满161,...

    进制转换:十进制数转十六进制数

    问题描述

    十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。
      给出一个非负整数,将它表示成十六进制的形式。

    代码描述(一)

    #include <stdio.h>
    int main()
    {
        int n,i,j=0;
        char a[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};//*创建一个十进制与十六进制对应的数组,并对其赋值*//
        char b[32];//*存放已转换好的十六进制的数组长度未知,自定义的长度32*//
        scanf("%d",&n);
        while(n>=16)
        {
            i=n%16;
            b[j]=a[i];
            j++;//*新的数组的下标移位*/
            n=n/16;
        }//*该while循环体的作用是把n大于16的数转换十六进制数再依次输入新的数组中*//
        if(n<16)
            b[j]=a[n];
        //*注意:此时数组b[]内的十六进制数是倒过来存储的*//
        while(j>=0)
        {
            if(j>0)//*判断是不是最后一个,不是的话输出,是的话直接换行*//
                printf("%c",b[j]);
            else
                printf("%c\n",b[j]);
            j--;
        }
        return 0;
    }
    

    代码描述(二)

    #include <stdio.h>
    int main()
    {
        int n, i, j = 0;
        char a[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' };
        char b[32];
        scanf("%d", &n);
        if (n ==0)
            printf("0\n");
        while (n)
        {
            i = n % 16;
            b[j] = a[i];
            ++j;
            n = n / 16;
        }
        for (i = j; i > 0; i--)
            printf("%c", b[i-1]);
        printf("\n");
        return 0;
    }
    
    展开全文
  • BASIC-10 十进制转十六进制 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。 它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制...
  • /* 很重要的,非常好用。... //十进制转成十六进制:  Integer.toHexString(n1);  //十进制转成八进制  Integer.toOctalString(n1);  //十进制转成二进制  Integer.toBinaryString(12);    //十六进
  • 十进制转十六进制

    2019-11-14 14:22:19
    基础练习 十进制转十六进制 问题描述  十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满161,所以...
  • 各种进制之间的相互转换,你还在用计算器吗,我总结了一些进制转换的方法...逢十六进十进制—>二/八/十六进制 口诀 整数部分,除2/8/16取余; 小数部分,乘2/8/16取整 例:23.25转换二进制为10111.01 二...
  • 十进制(Decimal System):每相邻的两个计数单位之间的率都为十;十进制是中华民族的一项杰出创造,在世界数学史上有重要意义。著名的英国科学史学家李约瑟教授曾对中国商代记数法予以很高的评价,"如果没有这种...
  • 十进制转八进制、十六进制 问题描述  十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满161,所以...
  • 十六进制的计数方法是满161,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11, 以此类推,十进制的30在十六进制中是1E。  给出一个非负整数,将它表示成十六进制的形式。 输入格式  输入包...
  • 试题 基础练习 十进制转十六进制 问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。 它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。 十六进制的计数方法是满161...
  • 基础练习之十进制转十六进制 问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满161,所以...
  • 十进制转十六进制 问题描述  十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满161,所以十进制数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 496
精华内容 198
关键字:

十进制转成十六进