精华内容
下载资源
问答
  • /**** Copyright(C) 2011, SKYCNC* All rights reserved** 程序名称:dec_to_bin_oct_hex* 功 能:输入一个十进制数,将其转化为二进制、八进制、十六进制** 作 者:zhanghbboy* 完成日期:11.07.27****/#include#...

    /***

    * Copyright(C) 2011, SKYCNC

    * All rights reserved

    *

    * 程序名称:dec_to_bin_oct_hex

    * 功    能:输入一个十进制数,将其转化为二进制、八进制、十六进制

    *

    * 作    者:zhanghbboy

    * 完成日期:11.07.27

    *

    ***/

    #include

    #include

    #include

    void dec_to_bin(int x); //函数调用定义

    void dec_to_oct(int x);

    void dec_to_hex(int x);

    int main(void)  // 计算机中,int 占用4个字节- -

    {

    int decNum;

    printf("请输入一个十进制整数:\n");

    scanf("%d", &decNum);

    dec_to_bin(decNum);

    dec_to_oct(decNum);

    dec_to_hex(decNum);

    return 0;

    }

    void dec_to_bin(int x)

    {

    char *table="01";

    char array[33];

    int num;

    num = x;

    array[32] = '\0';

    int i = 31;

    if (x > 0)

    {

    memset(array,'0',32);

    while(x)

    {

    array[i--] = table[x % 2];

    x = x/2;

    }

    }

    if (x < 0)

    {

    memset(array,'1',32);

    int j;

    for(j=0; j<32; j++)

    {

    array[i--] = table[x & 0x01];

    x >>= 1;

    }

    }

    printf("十进制数%d <======>对应二进制为%s\n", num, array);

    }

    void dec_to_oct(int x)

    {

    char *table = "01234567";

    char array[12]; //数组设定为12.是因为除了结束符之外,考虑到负数的输入,

    //其转化为补码再转为八进制数出,32位每三个取组成一个8进制数。因此元素为11个。

    int num;

    num = x;

    array[11] = '\0';

    int i = 10;

    if (x > 0)

    {

    memset(array,'0',11);

    while(x)

    {

    array[i--] = table[x % 8];

    x = x/8;

    }

    }

    if (x < 0)

    {

    memset(array,'1',11);

    int j;

    for(j=0; j<10; j++)// 32/3 = 10;

    {

    array[i--] = table[x & 0x07];

    x >>= 3;

    }

    array[i] = table[x & 0x03];

    }

    printf("十进制数%d <======>对应八进制为%s\n", num, array);

    }

    void dec_to_hex(int x)

    {

    char *table = "0123456789abcdef";

    char array[9];

    array[8] = '\0';

    int i = 7, num;

    num = x;

    if (x > 0)

    {

    memset(array,'0',8);

    while(x)

    {

    array[i--] = table[x % 16];

    x = x / 16 ;

    }

    }

    else

    {

    memset(array,'1',8);

    int j;

    for(j=0; j<8; j++)

    {

    array[i--] = table[x & 0x0f];

    x >>= 4;

    }

    }

    printf("十进制数%d <======>对应十六进制为%s\n", num, array);

    }

    /***

    *

    *  输出结果

    *

    ***/

    0818b9ca8b590ca3270a3433284dd417.png

    /***

    *

    *  说明:int 所占内存几个字节跟机器有关,我的是win32. int占4位,在VC++环境下编译正确

    *

    ***/

    展开全文
  • 十进制就是我们在计算中常用的进制,所以就不再举例(即逢十进一) 十六进制 十六进制与其它进制有所不同,在10到15用英文字母进行表示。 上面就是对进制的简单介绍,下面就是对进制转换而进行介绍。 1.二进制...

    二进制

    二进制就是计算机常用的进制,即逢二进一。例如:1010

    八进制

    八进制即逢八进一。例如:626

    十进制

    十进制就是我们在计算中常用的进制,所以就不再举例(即逢十进一)

    十六进制

    十六进制与其它进制有所不同,在10到15用英文字母进行表示。

    上面就是对进制的简单介绍,下面就是对进制转换而进行介绍。

    1.二进制转八进制

    拿二进制数10010110举例

    首先需要3个二进制数各划分一个区域,不足时则补零。我们可以看出该二进制数为八位,我们需要补充一位,

    即010010110

    从左到右依次是:(计算方法是从右向左依次乘上2的n次幂,n从零开始,^符号表示次幂)

    0  1  0                                    0  1  0                                        1  1  0

    0*2^2+1*2^1+0*2^0=2          0*2^2+1*2^1+0*2^0=2               1*2^2+1*2^1+0*2^0=6

    然后合并得到226就是转换后的八进制数。

    2.二进制转十进制

    拿二进制数10010110举例

    这里就不需要划分区域,而是直接进行计算。(计算方法是从右向左依次乘上2的n次幂,n从零开始,^符号表示次幂)

    1*2^7+0*2^6+0*2^5+1*2^4+0*2^3+1*2^2+1*2^1+0*2^0=150

    3.二进制转十六进制

    拿二进制数100101100举例

    二进制转十六进制和二进制转八进制类似,不过转十六进制划分区域为4个,不足也是补零

    000100101100

    0001                                               0010                                                1100

    0*2^3+0*2^2+0*2^1+1*2^0=1        0*2^3+0*2^2+1*2^1+0*2^0=2        1*2^3+1*2^2+0*2^1+0*2^0=12(12也就是十六进制中的C)

    合并为12C

    4.八进制转二进制

    八进制转二进制是二进制转换成八进制的逆过程。(不足时也是补零)

    拿八进制数226举例(需要取余数,采用倒叙过程)

    2                                                         2                                                                  6

    2/2=1(余数为0)                                  2/2=1(余数为0)                                            6/2=3(余数为0) 

    1/2=0(余数为1)                                  1/2=0(余数为1)                                            3/2=1(余数为1)   

                                                                                                                                  1/2=0(余数为1)    

                                                      

    所以取余数为10,不足三位,则补零,为010.                                                       余数为110

    最后合并,最终转换的二进制数为10010110

    5.八进制转十进制

    拿八进制数226举例(由右向左依次乘以8的n次幂,n从零开始)

    2*8^2+2*8^1+6*8^0=150

    6.八进制转十六进制

    八进制不能直接转换为十六进制。可以采用间接转换法来进行转换。

    1.先把八进制转换为二进制,然后再转换为十六进制。

    2.先把八进制转换为十进制,然后再转换为十六进制。

    拿八进制数226举例,从上面可以看出转换为二进制为10010110,然后我们再把它转换为16进制。

    划分区域

    1001                                                   0110

    1*2^3+0*2^2+0*2^1+1*2^0=9            0*2^3+1*2^2+1*2^1+0*2^0=6

    合并为96,所以八进制226转换为十六进制为96.

    第二种也是一样,小编在这里就不再举例,大家可以试试看,也是一样的结果。

    7.十进制转二进制

    十进制转二进制就是二进制转十进制的逆过程。同样,我们也拿十进制150来举例。

    150/2=75(余数为0)

    75/2=37(余数为1)

    37/2=18(余数为1)

    18/2=9(余数为0)

    9/2=4(余数为1)

    4/2=2(余数为0)

    2/2=1(余数为0)

    1/2=0(余数为1)

    整合为10010110即是转换的二进制。

    8.十进制转八进制

    十进制转八进制和八进制转十进制是互逆的,我们拿150来举例。

    150/8=18(余数为6)

    18/8=2(余数为2)

    2/8=0(余数为2)

    整合为226,得到八进制数。

    9.十进制转十六进制

    十进制转十六进制和十六进制转十进制是互逆的,我们拿150来举例。

    150/16=9(余数为6)

    9/16=0(余数为9)

    整合为96,得到十六进制数。

    10.十六进制转二进制

    十六进制转二进制和二进制转十六进制是互逆的,我们拿12C来举例。(不足的位数补零)

    1                                                             2                                                               C(转化为12)

    1/2=0(余数为1)                                      2/2=1(余数为0)                                         12/2=6(余数为0)  

                                                                  1/2=0(余数为1)                                          6/2=3(余数为0)

                                                                                                                                    3/2=1(余数为1)

                                                                                                                                    1/2=0(余数为1)

    0001                                                     0010                                                            1100

    整合为000100101100

    11.十六进制转八进制

    八进制不能直接转换为十六进制。那么十六进制也不能直接转化为八进制,可以采用间接转换法来进行转换。

    1.先把十六进制转换为二进制,然后再转换为八进制。

    2.先把十六进制转换为十进制,然后再转换为八进制。

    这里就不再介绍转化的过程,和八进制转化为十六进制一样,这里就是一个逆过程。

    12.十六进制转十进制

    拿十六进制96来举例(由右向左依次乘以16的n次幂,n从零开始)

    9*16^1+6*16^0=150

    好了,上面就是二进制,八进制,十进制,十六进制之间的转换。我们可以进行分类记忆,并总结规律。

    注意:1.我们在将进制数除以2的时候一定要选择逆顺序。

               2.在乘以次幂的时候也是从右往左的顺序,由零次幂依次递增。

               3.在选择区域的时候一定要看清是转换十六进制还是八进制,否则就会出错,记住不足的位数一定要补零哦。

    这些就是小编要提醒的注意事项,当然了,通过实例,自己多多练习,相信进制的转换对于大家来说就是很简单的啦。

    感谢朋友们对小编文章的评价哦!小编在后期也补充了小数部分的进制转换。请参考文章https://blog.csdn.net/mez_Blog/article/details/102468841希望大家多多支持哦^_^

    Endeavor

    展开全文
  • case 'C': temp = 12; break; case 'D': temp = 13; break; case 'E': temp = 14; break; case 'F': temp = 15; break; default: temp = strHex[i]-'0'; break; } nDec += (temp*pow(16,len-1-i)); } printf("%I64d...

    满意答案

    02ae427d08e371d7e90d5b995e828d6d.png

    xz0084

    2015.01.10

    02ae427d08e371d7e90d5b995e828d6d.png

    采纳率:58%    等级:8

    已帮助:910人

    #include

    #include

    #include

    int main()

    {

    char strHex[8];

    int i = 0, len = 0, temp = 0;

    __int64 nDec = 0;

    gets(strHex);

    len = strlen(strHex);

    for (i = 0; strHex[i] != '\0'; ++i)

    {

    switch(strHex[i])

    {

    case 'A': temp = 10; break;

    case 'B': temp = 11; break;

    case 'C': temp = 12; break;

    case 'D': temp = 13; break;

    case 'E': temp = 14; break;

    case 'F': temp = 15; break;

    default: temp = strHex[i]-'0'; break;

    }

    nDec += (temp*pow(16,len-1-i));

    }

    printf("%I64d",nDec);

    return 0;

    }

    望采纳!

    00分享举报

    展开全文
  • 十六进制转八进制 问题描述 给定n个十六进制正整数,输出它们对应的八进制数。 输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制...

    十六进制转八进制

    问题描述

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

    输入格式

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

    输出格式

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

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

    样例输入

    2
    39
    123ABC

    样例输出

    71
    4435274

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

    代码如下:

    import java.math.BigInteger;
    import java.util.Scanner;
    
    public class 十六进制转八进制 {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int n = sc.nextInt();
    		sc.nextLine();
    		for (int i = 0; i < n; i++) {
    			System.out.println(new BigInteger(sc.nextLine(), 16).toString(8));
    		}
    	}
    }
    

    在这里插入图片描述

    十六进制转十进制

    问题描述

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

    样例输入

    FFFF

    样例输出

    65535

    代码如下:

    Java
    import java.util.Scanner;
    
    public class 十六进制转十进制 {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		String n = sc.nextLine();
    		System.out.println(Long.valueOf(n, 16));
    	}
    }
    

    在这里插入图片描述

    C++
    #include <iostream>
    #include <cstdio>
    
    using namespace std;
    
    int main()
    {
    	long long s;
    	scanf("%llx", &s);
    	printf("%lld", s);
    	return 0;
    }
    

    在这里插入图片描述

    十进制转十六进制

    问题描述

    十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有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

    代码如下:

    Java
    import java.util.Scanner;
    
    public class 十进制转十六进制 {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int n = sc.nextInt();
    		System.out.println(Integer.toHexString(n).toUpperCase());//转为十六进制A---F大写
    	}
    }
    

    在这里插入图片描述

    C++
    #include<iostream>
    #include <cstdio>
    
    using namespace std;
    
    int main()
    {
       int n;
       scanf("%d",&n);
       printf("%X",n);
       return 0;
    }
    

    在这里插入图片描述

    小结:

    十进制向二、八、十六进制的转换
    Integer.toBinaryString(i)表示十进制转为二进制
    Integer.toOctalString(i)表示十进制转为八进制
    Integer.toHexString(i)表示十进制转为十六进制

    进制转换问题可以直接用格式化输出。
    十进制整数,%o表示以八进制进行输出
    十进制整数,%X / %x表示以十六进制进行输出,大写X表示使用大写字母,小写x表示使用小写字母。
    另外使用%#o,%#X,%#x,得到的输出包含前缀0,0X,0x。

    展开全文
  • 十进制转换十六进制C语言

    千次阅读 2019-10-25 11:18:41
    #include <stdio.h>.../*十进制转十六进制,方法:除16取余数倒排*/ char* convert(int x) { static char hexchars[] = "0123456789ABCDEF"; static char str1[81], str2[81], * p = str1, ...
  • 十六进制转十进制问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出65535 ...
  • STM32十六进制字符串转十进制数值STM32十六进制字符串转十进制数值STM32十六进制字符串转十进制数值
  • C语言:将十进制转化为八进制,十六进制0myx0102013.12.06浏览34次分享举报我的错误代码如下。。求牛人告诉我是哪错了。。 #include int main(void) { int i,j,m,n,c,d; int a[100]; char b[100]; i=0; j=0; printf(...
  • C语言十六进制转十进制两种实现方法C语言 · 十六进制转十进制问题描述从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、...
  • ASCII码值转化十六进制十进制数;十六进制字符值转十进制,ASCII码值;
  • 进制转换:二进制、八进制、十六进制十进制之间的转换 不同进制之间的转换在编程中经常会用到,尤其是C语言。 将二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制十进制转换都非常容易,就是...
  • 十进制转十六进制 除16取余数得最低1位,然后把商继续除得第2位,直到商等于0 45的16进制为 45/16 余数 13(D) 商 2 2/16 余数为 2 A(10) B(11) C(12) D(13) E(14) F(15) 除数小于被除数,余数是自己本身 十六...
  • 以下程序的输出结果是 main(){ int a=20; printf("%d,%o,%x\n",a,a,a);...1.题目给出了 a=20这个十进制现在我们需要用十进制转八进制,这里我们采用的就是直接除8取余的方法 2.同理对于10进制16进制我们也是...
  • 本文概述什么是十六进制十六进制是一种位置系统,以16为基数表示十六个不同的符号中的数字。这些不同的符号,即“ 0-9”代表从零到九的值,...十六进制数= A12C相当于A的二进制值是1010等于1的二进制值是0001等于...
  • 问题描述:提取字符串中的十六进制数字并转换为一个十进制整数输出源代码:/*十六进制转换成十进制*/#includeint main(void){int i,k;char hexad[80],str[80];long number;printf("Enter a string:");i=0;while((str...
  • 友情提示:此篇文章大约需要阅读 2分钟23秒,不足之处请多指教,感谢...十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。给出...
  • C语言 · 十六进制转十进制问题描述从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出65535...
  • 个八位十六进制数字,装换为二进制,然后取其补码,然后求其平均值。用c编写,代码稍微有点问题,大家可以完善下
  • 用字符表示的十六进制值转化为十进制,ASCII码: bool ok; QStringList list; //初始化list的内容为:list = ("30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "43", "44", "4D", "4E") //初始化...
  • 试题 基础练习 十六进制转十进制 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。  注:十六进制数中的10~15分别用大写的...
  • 十六进制 十进制 十进制 十六进制 二进制 十六进制 十六进制 二进制 ©本文由博主原创,未经允许,不得转载相关博文内容 介绍 我相信很多大学计算机专业的学生还依然不懂它们之间的区别以及...
  • 以下代码可以实现十进制到二进制、八进制、十六进制的任意转换。 #include&amp;amp;lt;stdio.h&amp;amp;gt; #include&amp;amp;lt;string.h&amp;amp;gt; void fun10_2_8_16(char *p,long number,...
  • **问题描述:**将一个十六进制数装换为一个十进制数 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<math.h> int hex_to_dec(char *a) { int len = strlen(a)...
  • 十进制数转换为十六进制数Conversion of decimal number system into hexadecimal number system can be done by successively dividing an integral part by 16 till the quotient is 0 and then reading the ...
  • 相关问题十进制数,十六进制数,7D,八进制数,十六进制数,十六进制,数码,十六进制,其中,十六进制,Python,中,0xad,十六进制,数字,形式,十进制,常数,十六进制,常数,地址,值,十六进制,值,值,之间,冒号,记,法,冒号,十六进制...
  • 十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。  给出一个非负整数,将它表示成十六进制的形式。 输入格式  输入包含一个...
  • 蓝桥杯 基础练习(十) 十进制转十六进制 C语言

    千次阅读 多人点赞 2019-01-19 12:03:09
    十进制转十六进制 C语言 问题描述  十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以...
  • 二进制、八进制、十进制十六进制关系及转换

    万次阅读 多人点赞 2019-02-21 21:20:22
    二进制,八进制,十进制十六进制之间的关系是什么?浮点数是什么回事? 本文内容参考自王达老师的《深入理解计算机网络》一书&amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;中国水利水电出版社&amp;amp;amp;amp...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 131,783
精华内容 52,713
关键字:

十六进制44c转十进制