转16进制_16进制转换 - CSDN
精华内容
参与话题
  • C++10进制转16进制

    千次阅读 2018-02-03 01:10:04
    10进制转16进制是常用的算法,一般利用循环做除法求余数的方法来求解。由于先求出来余数要最后输出,给这个问题增加了难度,在学习过程中发现一个利用字符串巧妙解决该问题的方法: #include #include using ...

    10进制转16进制是常用的算法,一般利用循环做除法求余数的方法来求解。由于先求出来余数要最后输出,给这个问题增加了难度,在学习过程中发现一个利用字符串巧妙解决该问题的方法:

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
    	long a;//输入的数
    	int y=0;//循环中的余数
    	string s="";//输出的结果
    	cin>>a;
    	if(a==0)//0比较特殊,单独处理
    	{
    	cout<<0;
    	return 0;
    	}
     
    	while(a>0)//大于0的数
    	{
    		y=a%16;  //求余
    		if(y<10)   //小于10的余数
    		s=char('0'+y)+s;  //利用字符的ascll码在字符串前面拼接
    		else
    		s=char('A'-10+y)+s;  //大于9的余数用ABCDE表示
    		a=a/16;   
    	}
    	cout<<s;
    	return 0;
    }


    展开全文
  • 进制转换成十六进制

    千次阅读 2019-04-05 16:27:59
    #include<stdio.h> void DtoH(int n) { if(n!=0)//写成while(n)出现死循环 { DtoH(n>>... // printf("%d %d\n",n/16,fbit); if(fbit<=9) { printf("%d",fbit); } ...
    #include<stdio.h>
    void DtoH(int n)
    {
    	if(n!=0)//写成while(n)出现死循环
    	{
    		DtoH(n>>4);
    		int fbit=n&0x0f;
    	//	printf("%d  %d\n",n/16,fbit);
    		if(fbit<=9)
    		{
    			printf("%d",fbit);
    		}
    		else
    		{
    			printf("%c",fbit-10+'A');//大于9,输出A-F
    		}
    	}
    }
    int main()
    {
    	int N;
    	printf("输入一整数:");
    	scanf("%d",&N);
    	if(N==0)
    	{
    		printf("十六进制为0\n");
    	}
    	else
    	{
    		printf("%d的十六进制表示为:0x",N);
    		DtoH(N);
    		printf("\n");
    	}
    	return 0;
    }
    
    
    

     

    展开全文
  • 10进制转换为16进制

    千次阅读 2018-12-19 10:26:22
    十进制小数转换为16进制小数可采用乘16取整法,即: 十进制小数R进制小数,方法为乘R取整,每次乘以相应之后基数后取结果的整数部分即可。需要注意的是并非所有的十进制小数都能完全转化为R进制小数,这时就需要...

    十进制小数转换为16进制小数可采用乘16取整法,即:

    十进制小数转R进制小数,方法为乘R取整,每次乘以相应之后基数后取结果的整数部分即可。需要注意的是并非所有的十进制小数都能完全转化为R进制小数,这时就需要取近似值。

    例如:十进制小数0.15转换为16进制小数,其计算过程为:

    0.15*16=2.4取整为2

    0.4*16=6.4取整为6

    0.4*16=6.4取整为6

    ....

    最后得出0.15转换为16进制之后的数值为0.266667

    常用透明度百分比与16进制表对照关系:

    100% — FF
    99% — FC
    98% — FA
    97% — F7
    96% — F5
    95% — F2
    94% — F0
    93% — ED
    92% — EB
    91% — E8
    90% — E6
    89% — E3
    88% — E0
    87% — DE
    86% — DB
    85% — D9
    84% — D6
    83% — D4
    82% — D1
    81% — CF
    80% — CC
    79% — C9
    78% — C7
    77% — C4
    76% — C2
    75% — BF
    74% — BD
    73% — BA
    72% — B8
    71% — B5
    70% — B3
    69% — B0
    68% — AD
    67% — AB
    66% — A8
    65% — A6
    64% — A3
    63% — A1
    62% — 9E
    61% — 9C
    60% — 99
    59% — 96
    58% — 94
    57% — 91
    56% — 8F
    55% — 8C
    54% — 8A
    53% — 87
    52% — 85
    51% — 82
    50% — 80
    49% — 7D
    48% — 7A
    47% — 78
    46% — 75
    45% — 73
    44% — 70
    43% — 6E
    42% — 6B
    41% — 69
    40% — 66
    39% — 63
    38% — 61
    37% — 5E
    36% — 5C
    35% — 59
    34% — 57
    33% — 54
    32% — 52
    31% — 4F
    30% — 4D
    29% — 4A
    28% — 47
    27% — 45
    26% — 42
    25% — 40
    24% — 3D
    23% — 3B
    22% — 38
    21% — 36
    20% — 33
    19% — 30
    18% — 2E
    17% — 2B
    16% — 29
    15% — 26
    14% — 24
    13% — 21
    12% — 1F
    11% — 1C
    10% — 1A
    9% — 17
    8% — 14
    7% — 12
    6% — 0F
    5% — 0D
    4% — 0A
    3% — 08
    2% — 05
    1% — 03
    0% — 00

    展开全文
  • 字符串和16进制之间的转换

    万次阅读 2020-04-08 10:17:45
    在串口传递数据的时候数据格式是16进制的,但是存下来的数据为了方便查看,用字符串存储下来了。例如串口传递的数据是0xAA 0xBB 0xCC,存储下来的文件为AABBCC,这样存储带来的问题就是无法直接通过串口再发送出去,...

    在串口传递数据的时候数据格式是16进制的,但是存下来的数据为了方便查看,用字符串存储下来了。例如串口传递的数据是0xAA 0xBB 0xCC,存储下来的文件为AABBCC,这样存储带来的问题就是无法直接通过串口再发送出去,所以需要转换一下。在实现转换之前,先看一个16进制和字符的对应关系,如下所述。

    用16进制打开一个文件如下图:
    CSDN
    文件的大小是5个字节
    CSDN
    为啥文件里面以01作为一个字节呢。原因是01是两个16进制的字符,一个16进制字符是4位,8位是一个字节,所以01表示一个字节。基于上面的结论,转换函数实现如下:

    #include <stdio.h>
    #include <unistd.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define MAX_DATA_SIZE 1024
    
    static int convert_string2hex(unsigned char *in_data, int in_data_len, unsigned char *out_data, int *out_data_len)
    {
        int i;
        int loop_count;
        int convert_point = 0;
        int mem_point = 0;
        unsigned char convert_result;
        unsigned char temp[3] = {0}; /* 为啥是3呢? */
    	
    	/* 检查参数有效性 */
        if (in_data == NULL || in_data_len <= 0 || out_data == NULL || out_data_len == NULL || (in_data_len % 2) != 0) {
            printf("invalid parameters\n");
            return -1;
        }
    
    	/* 判断是否超过16进制范围 0 ~ F */
        for (i = 0; i < in_data_len; i++) {
            if ((in_data[i] < '0') || (in_data[i] > 'f') || ((in_data[i] > '9') &&(in_data[i] < 'A'))) {
                printf("out of range\n");
                return -1;
            }
        }
    
        loop_count = in_data_len / 2;
        memset(out_data, 0x00, *out_data_len);
        *out_data_len = 0;
    
        for (i = 0; i < loop_count; i++) {
            memset(temp, 0x00, sizeof(temp));
            memcpy(temp, in_data + convert_point, 2);
            convert_point += 2;
    
            convert_result = strtoul(temp, NULL, 16);
    
            memcpy(out_data + mem_point, &convert_result, sizeof(unsigned char));
            mem_point += sizeof(unsigned char);
            *out_data_len += sizeof(unsigned char);
        }
    
        return 0;
    }
    

    测试转换功能的代码如下:

    int main(int argc, char const *argv[])
    {
        unsigned char in_data[MAX_DATA_SIZE] = {0};
        int in_data_len = MAX_DATA_SIZE;
        unsigned char out_data[MAX_DATA_SIZE] = {0};
        int out_data_len = MAX_DATA_SIZE;
        int i;
    
        scanf("%s", in_data);
    
        in_data_len = strlen(in_data);
    
        convert_string2hex(in_data, in_data_len, out_data, &out_data_len);
    
        for (i = 0; i < out_data_len; i++) {
            printf("0x%02x ", out_data[i]);
        }
        printf("\n");
    
        return 0;
    }
    

    输入AABBCC转换后的结果是0xAA 0xBB 0xCC。

    注意点
    convert_string2hex()函数中用来承接数据的temp必须要是3个字节,原因是strtoul函数的功能导致,strtoul()函数的定义如下:

    unsigned long int strtoul(const char *nptr, char **endptr, int base);
    

    strtoul()会扫描参数nptr字符串,跳过前面的空白字符(例如空格,tab缩进等),直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时(’\0’)结束转换,如果申请的temp是2个字节,那么其后面的一个字节如果不是0,转换就会出错,所以多申请一个字节来防止出现这种错误

    展开全文
  • 进制转换 原理 进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。 基数是指,进位计数制中所采用的数码(数制中用来表示...一:(二,八,十六进制十进...
  • 进制 进制进制 进制 十六进制 进制进制 十六进制进制 十六进制 十六进制 进制 ©本文由博主原创,未经允许,不得转载相关博文内容 介绍 我相信很多大学计算机专业...
  • 进制、八进制、十进制、十六进制之间的转换

    万次阅读 多人点赞 2018-12-28 23:55:23
    目录  1.十进制转2进制  2.二进制转进制  ...
  • 为什么要使用进制数 数据在计算机中的表示,最终以二进制的形式存在 , 就是各种 &lt;黑客帝国&gt;电影中那些 0101010… 的数字 ; 我们操作计算机 , 实际 就是 使用 程序 和 软件 ...用16进制或8进制可以...
  • #10进制转16进制: hex(16) ==&amp;gt; 0x10 10进制转8进制: oct(16) ==&amp;gt; 0x10` 16进制转10进制: `int('0x10', 16) ==&amp;gt; 16` 类似的还有oct(), bin() 字符串转整数: 10进制字符串: int...
  • shell 中转换16进制10进制

    万次阅读 2012-10-10 17:28:55
    一、16进制转换成10进制 printf %d 0xF 15 或者 echo $((16#F)) 15 二、10进制转换成16进制 printf %x 15 f 或者 echo "obase=16;15"|bc F 三、10进制转换成8进制 printf %o 9 11 四、8进制...
  • arduino十进制转十六进制

    万次阅读 2018-03-13 20:25:58
    以下是arduino十进制转十六进制的方法,如果有什么可以改进的地方请留言 打印 Serial.print(inByte, HEX); 十进制转十六进制 //十进制转十六进制 String tohex(int n) { if (n == 0) { return "00...
  • 进制转进制 bin(18)--&gt; '0b10010' 去掉0b就是10010 即为十进制18进制是10010十进制转进制oct(18) --&gt;'022' 去掉0 就是22 即为十进制18进制是22十进制转十六进制hex(18) --&gt;'...
  • python 10进制16进制之间的转换

    万次阅读 2018-10-11 17:01:01
    10转16 hex() 16转10 eval() &gt;&gt;&gt; ten=12 &gt;&gt;&gt; sixteen=hex(ten) &gt;&gt;&gt; print(sixteen) 0xc &gt;&gt;&gt; print(eval(sixteen)) 12
  • Qt 十六进制和十进制转换

    万次阅读 2018-10-12 14:09:36
    十六进制转进制 bool ok; QString hex = 16; int dec = hex.toInt(&amp;ok, 16);   十进制转十六进制 int dec = 100; QString hex = QString("%1").arg(dec, 4, 16, QLatinlChar('0')); //...
  • 使用java.math.BigInteger构造函数BigInteger(String val, int radix) : 将指定基数的 BigInteger 的字符串表示形式转换为 BigInteger。 new BigInteger("..., 16).toString()即可...
  • java 16进制和10进制的相互转换

    万次阅读 2019-01-16 16:17:56
    16进制转化为10进制 1、字符串类型的10进制转化为16进制 String a="616"; Integer b=Integer.parseInt(a,16); 2、10进制转化为16进制 int a=616; integer b=Integer.parseInt(a.toString(),16); 10...
  • c# 16进制转10进制

    万次阅读 2019-04-13 09:11:59
    CPU卡、M1、ID卡,在一卡通平台通常做法是使用扇区的前4字节的10进制做为卡号,但实际扇区存储的都是16进制字符串。...一、16进制转10进制 var id = Convert.ToInt32("28de1212", 16); //id6...
  • 调用Python内置int()函数把该字串转为数字。以下为在Python解释器编程环境下的操作...把十六进制的字串转为十进制数字: Python代码 >>> print int('ff', 16)  255 >>> print int('ff', 16) 255 把十进制
  • //十进制转其他 var x=110; alert(x); alert(x.toString(8)); alert(x.toString(32)); alert(x.toString(16)); //其他进制 var x='110'; alert(parseInt(x,2)); alert(parseInt(x,8)); alert(parseInt(x,16)); /...
  • python3 字符串、十六进制字符串、数字、字节之间的转换字节转16进制的字符串字节转数字16进制字符串转数字字符串转字节字节转字符串数字转字节 字节转16进制的字符串 ‘S’对应的16进制数是 0X53 字节转数字 ...
1 2 3 4 5 ... 20
收藏数 413,009
精华内容 165,203
关键字:

转16进制