精华内容
下载资源
问答
  • 小马在做嵌入式程序的过程,经常会遇到进制转换的问题,经常会遇到数字转字符串,字符串转数字等等,现在就先以10进制转16进制为例附代码,如下,以后在遇到类似进制转换可以直接拿去用。 `void uint8_t DecToHex...

    小马在做嵌入式程序的过程中,经常会遇到进制转换的问题,经常会遇到数字转字符串,字符串转数字等等,现在就先以10进制转16进制为例附代码,如下,以后在遇到类似进制转换可以直接拿去用。
    `void uint8_t DecToHex(data)
    {
    uint8_t shi,ge;
    shi = data/16;
    ge = data%16;
    switch(shi)
    {
    case 0:shi=‘0’;break;
    case 1:shi=‘1’;break;
    case 2:shi=‘2’;break;
    case 3:shi=‘3’;break;
    case 4:shi=‘4’;break;
    case 5:shi=‘5’;break;
    case 6:shi=‘6’;break;
    case 7:shi=‘7’;break;
    case 8:shi=‘8’;break;
    case 9:shi=‘9’;break;
    case 10:shi=‘A’;break;
    case 11:shi=‘B’;break;
    case 12:shi=‘C’;break;
    case 13:shi=‘D’;break;
    case 14:shi=‘E’;break;
    case 15:shi=‘F’;break;
    default:break;
    }
    switch(ge)
    {
    case 0:ge=‘0’;break;
    case 1:ge=‘1’;break;
    case 2:ge=‘2’;break;
    case 3:ge=‘3’;break;
    case 4:ge=‘4’;break;
    case 5:ge=‘5’;break;
    case 6:ge=‘6’;break;
    case 7:ge=‘7’;break;
    case 8:ge=‘8’;break;
    case 9:ge=‘9’;break;
    case 10:ge=‘A’;break;
    case 11:ge=‘B’;break;
    case 12:ge=‘C’;break;
    case 13:ge=‘D’;break;
    case 14:ge=‘E’;break;
    case 15:ge=‘F’;break;
    default:break;
    }

    }`。

    更多内容,扫描一下二维码,共同学习、成长。

    在这里插入图片描述

    展开全文
  • 对应十进制 : 9*16^1 + 6*16^0 = 150; /* 十六进制中有以下对应关系 A(a) = 10; B(b) = 11; C(c) = 12; D(d) = 13; E(e) = 14; F(f) = 15; */ # include <stdio.h> # include <string.h>...

    问题: 写一个函数,输入一个十六进制数,输出相应的十进制数

     本次代码采用的方法是按权相加
    	 例:十六进制 :96
    	 对应十进制 : 9*16^1 + 6*16^0 = 150; 
    
    /* 	
    	十六进制中有以下对应关系
    	A(a) = 10;
    	B(b) = 11;
    	C(c) = 12;
    	D(d) = 13;
    	E(e) = 14;
    	F(f) = 15;	  
    */
    # include <stdio.h>
    # include <string.h>
    int main(){
    	int Hextod(char []);
    	char a[80];
    	printf("Please enter HEX number : ");
    	scanf("%s",a);
    	printf("n = %d",Hextod(a))	;
    	return 0;
    }
    int Hextod(char str[]){
    	int sum=0,p=1,n;
    	for(int i=strlen(str)-1;i>=0;i--){
    		// 将字符串按照ASCii码转换成数值
    		if(str[i]>='0' && str[i]<='9') n = str[i]-'0';
    		else if(str[i]>='a' && str[i]<='f') n = str[i]-'a'+10;
    		else if(str[i]>='A' && str[i]<='F') n = str[i]-'A'+10;
    		sum += n*p;
    		p *= 16;
    	}
    	return sum;	
    }
    
    

    样例输入:A158
    样例输出 :41304

    展开全文
  • 十六进制的计数方法是满16进1,所以十进制16在十六进制中10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。  给出一个非负整数,将它表示成十六进制的形式。 #include<stdio.h>...

    问题描述
      十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有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>
    #include<string.h>
    int main(){
        long n;char a[1000];
        int i;
        scanf("%d",&n);
        for(i=0;n!=0;i++){
        if(n%16==10)a[i]='A';
        else if(n%16==11)a[i]='B';
        else if(n%16==12)a[i]='C';
        else if(n%16==13)a[i]='D';
        else if(n%16==14)a[i]='E';
        else if(n%16==15)a[i]='F';
        else a[i]=(n%16)+'0';
        n=n/16;
    }
    for(i=strlen(a)-1;i>=0;i--)
    printf("%c",a[i]);
    return 0;
    } 
    
    展开全文
  • C语言某个程序当中需要把文本16进制转换成对应的16进制数,比如字符串"0x1a"转换成10进制的26,可以用以下函数来实现相关函数: atof, atoi, atol, strtod, strtoul表头文件: #include 定义函数: long int strtol...

    在C语言某个程序当中需要把文本16进制转换成对应的16进制数,比如字符串"0x1a"转换成10进制的26,可以用以下函数来实现

    相关函数: atof, atoi, atol, strtod, strtoul

    表头文件: #include

    定义函数: long int strtol(const char *nptr, char **endptr, int

    base);

    函数的解释说明

    这个函数会将参数nptr字符串根据参数base来转换成长整型数。参数base范围从2至36,或0。参数base代表采的进制方式,如base值为10则采用10进制,若base值为16则采用16进制等。当base值为0时则是采用10进制做转换,但遇到如’0x’前置字符则会使用16进制做转换、遇到’0’前置字符而不是’0x’的时候会使用8进制做转换。一开始strtol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('\0')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回;若参数endptr为NULL,则会不返回非法字符串。

    strtol是atoi的增强版

    主要体现在这几方面:

    1.不仅可以识别十进制整数,还可以识别其它进制的整数,取决于base参数,比如strtol("0XDEADbeE~~",

    NULL, 16)返回0xdeadbee的值,strtol("0777~~", NULL, 8)返回0777的值。

    2.endptr是一个传出参数,函数返回时指向后面未被识别的第一个字符。例如char *pos;

    strtol("123abc", &pos,

    10);,strtol返回123,pos指向字符串中的字母a。如果字符串开头没有可识别的整数,例如char *pos;

    strtol("ABCabc", &pos,

    10);,则strtol返回0,pos指向字符串开头,可以据此判断这种出错的情况,而这是atoi处理不了的。

    3.如果字符串中的整数值超出long

    int的表示范围(上溢或下溢),则strtol返回它所能表示的最大(或最小)整数,并设置errno为ERANGE,例如strtol("0XDEADbeef~~",

    NULL, 16)返回0x7fffffff并设置errno为ERANGE

    将字符串a, b, c 分别采用10, 2, 16进制转换成数字

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

    #include

    #include

    int main()

    {

    char a[] = "100";

    char b[] = "100";

    char c[] = "0x11";

    int x, y, z;

    x = strtol( a, NULL, 10 );

    y = strtol( b, NULL, 2 );

    z = strtol( c, NULL, 16 );

    printf( "x = %d\n", x );

    printf( "y = %d\n", y );

    printf( "z = %d\n", z );

    }

    输出:x = 100

    y = 4

    z = 17

    举例说明:字符串b中的每个字符在内存中都占有一个字节(1 Byte = 8

    bits)的空间,将若干个(3个)字节中的内容转换成二进制的数字(字符串"100"去掉双引号后是一个二进制的数字100),让后将该二进制数字以十进制的形式4打印出来

    展开全文
  • 程序实现如下功能:输入一个正的十进制纯小数和一个表示进制的整数n(n<10),然后将这个十进制纯小数转换为n进制小数,最后输出结果。 提示:可以先将求得的n进制小数的每一位数存入一个数组,然后再按符合...
  • C语言)蓝桥杯-十进制转十六进制 问题描述  十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。 十六进制的计数方法是满16...
  • 进制转十六进制 C语言问题描述十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制...
  • C语言某个程序当中需要把文本16进制转换成对应的16进制数,比如字符串"0x1a"转换成10进制的26,可以用以下函数来实现 相关函数: atof, atoi, atol, strtod, strtoul 表头文件: #include <stdlib.h> 定义函数...
  • 蓝桥杯 基础练习(十) 十进制转十六进制 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,所以十...
  • 基础练习 十进制转十六进制 C语言

    千次阅读 2019-06-29 16:50:35
    基础练习 十进制转十六...十六进制的计数方法是满16进1,所以十进制数16在十六进制10,而十进制的17在十六进制是11,以此类推,十进制的30在十六进制是1E。  给出一个非负整数,将它表示成十六进制的形式...
  • 十六进制的计数方法是满16进1,所以十进制16在十六进制中10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。  给出一个非负整数,将它表示成十六进制的形式。 输入格式  输入包含一个...
  •  注:十六进制10~15分别用大写的英文字母A、B、C、D、E、F表示。 样例输入 FFFF 样例输出 65535 我的代码: #include #include #include int main() { char a[9]; gets(a); int i,n,sum=0; n=strlen(a);...
  • #define const 字符串常量1 8 10 16 进制转换sizeof关键字变量 int folat char类型限定 const volatile register输入输出 printf scanf运算符 = + - * / % += -= *= /= %= ++ -- , 运算符优先级代码块{}类型转换1...
  • C语言某个程序当中需要把文本16进制转换成对应的16进制数,比如字符串"0x1a"转换成10进制的26,可以用以下函数来实现相关函数: atof, atoi, atol, strtod, strtoul表头文件: #include 定义函数: long int strtol...
  • 进制:2 B,8 O,10 D,16 H K进制数到十进制数的转换:按权展开 十进制数到K进制数的转换:短除法 取余数 倒序 K进制小数:乘权去整数 取整数 正序 PS:有时会无法转换,例如 0.1D无法转换为二进制 一位十六进制数...
  •  在程序中是根据前缀来区分各种进制数的。因此在书写常数时不要把前缀弄错造成结果不正确。4.整型常数的后缀在16位字长的机器上,基本整型的长度也为16位,因此表示的数的范围也是有限定的。十进制无符号整常数的...
  • 提示 ①通过调用 INT 16H 的 0 号功能可以读取光标控制键的扩展码 光标控制键: ↑ ↓ ← → 扩展码(十进制): 72 80 75 77 ②在指定位置用指定属性显示字符的方法有两种:一是直接写显示缓冲区,二是利用 BIOS 屏显...
  • C语言中实现itoa函数的实例一、原型:char *itoa( int value, char *string,...radix:转换后的进制数,可以是10进制16进制等。三、函数简单实现:#include #include using namespace std;char* My_itoa(int valu...
  • 单片机C语言程序设计实训100例基于8051+Proteus仿真源码: 第 01 篇 基础部分 01 闪烁的LED 02 从左到右的流水灯 03 左右来回的流水灯 04 花样流水灯 05 LED模拟交通灯 06 单只数码管循环显示0-9 07 8只数码管滚动...
  • 单片机C语言程序设计实训100例——基于8051Proteus仿真 01 闪烁的LED 02 从左到右的流水灯 03 左右来回的流水灯 04 花样流水灯 05 LED模拟交通灯 06 单只数码管循环显示0-9 07 8只数码管滚动显示单个数字 08...
  • C语言中的strtol函数

    2020-06-29 22:49:24
    10进制、2-->2进制、16-->16进制*/ /*功能:将字符形式的数字nptr按照进制base转换为long int型的整数*/ /*(**endptr):指向指针的指针==指向一个位置的指针==指向结束转换位置的指针*/ 2.程序

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 147
精华内容 58
关键字:

c语言程序中10进制转16进制

c语言 订阅