写程序时我们经常遇到进制转换的问题,最常见的就是十进制和十六进制之间的转换,这篇就记录一下如何从十进制转换为十六进制。

十进制转十六进制字符串输出

char *itoa(int value,char*str,int base)

使用itoa(int value,char*str,int base)函数,value表示需要被转换的数,str表示转换完成后存储结果的目标位置,base表示进制数。例如,我们要将一个十进制数a转换为十六进制字符串,则:

char*buffer[33];char*int_hex(int a){itoa (a,buffer,16);return buffer;}

但是,这个函数并非一个标准库函数,所以有些编译器在编译时可能会因不支持该函数而报错。

sprintf(str,”%x”,value)

使用sprintf(str,”%x”,value)函数格式化输出十六进制字符串,str表示转换后存储的目标位置,%x表示转换为十六进制,value表示需要被转换的数。这个函数可以完美替换itoa()函数。

例如我们要将一个十进制数a转换为十六进制字符串输出,则:

char buffer[33];
char*int_hex(int a)
{
sprintf(buffer,”%x”,a);
return buffer;
}

sprintf()和printf()的用法类似,以%开始,后面的字符为格式限定符,部分格式限定符如下表:

%% 打印百分比符号
%c 转换成ASCII
%d 转换成十进制
%f 转换成浮点数
%o 转换成八进制
%s 转换成字符串
%x 转换成小写十六进制
%X

转换成大写十六进制

以上两种方法都是将十进制数转换成十六进制字符串输出,但有时我们需要的是十六进制数,也就是我们需要将十进制数转换后以十六进制数的形式输出,高级的办法我没有,只会一种最基础最直接的转换方法,十进制转换为十六进制的根本就是十进制数不断除以16取余,直至最后。

unsigned char hex[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};
void int_hex(void)
{
signed int a,b,c,d,e,f,h;
a=num%16;
b=(num/16)%16;
c=((num/16)/16)%16;
d=(((num/16)/16)/16)%16;
e=(((hex[d]&0xff)<<4)|0x0f)&(hex[c]|0xf0);
f=(((hex[b]&0xff)<<4)|0x0f)&(hex[a]|0xf0);
e=(e&0xffff)<<8;
f=f|0xff00;
h=e&f;
}

按照上面的函数算,最后我们的是h就是一个两个字节的十六进制数了。

以上就是十进制转换为十六进制的各种常用方法了。

各种十进制转十六进制的方法相关推荐

  1. python 十进制转二进制,十进制转八进制,十进制转十六进制 的方法

    python 转二进制使用:bin, 八进制使用oct 十六进制使用:hex 下面说下使用 a = 1234 print("十进制数为: ", a) print("转换为 ...

  2. 十六进制转换html,如何使用JavaScript将十进制转换为十六进制?

    JavaScript中有很多内置函数可以帮我们进行数(进)制转换.那么给定一个十进制数字,如何将数字从十进制转换为十六进制?下面本篇文章就来给大家介绍一个使用JavaScript将十进制转换为十六进制 ...

  3. 二进制与八进制、十进制、十六进制之间的转换

    首先我们常用的进制就有二进制.八进制.十进制.十六进制,他们之间主要的区别在于运算时逢几进一位,比如二进制是逢二进一位,八进制是逢八进一位,十进制是逢十进一,同样十六进制是逢十六进一. 进制有两个基本 ...

  4. arduino十进制转十六进制

    以下是arduino十进制转十六进制的方法,如果有什么可以改进的地方请留言 打印 Serial.print(inByte, HEX); 十进制转十六进制 //十进制转十六进制 String tohex ...

  5. iOS 十进制转十六进制

    iOS 十进制转十六进制的方法函数 -(NSString *)ToHex:(long long int)tmpid { NSString *nLetterValue; NSString *str =@ ...

  6. 二进制,十进制,十六进制,相互转化

    二进制,十进制,十六进制,相互转化 基本原理: 十进制:满10进1 0--9共有十个数字,满10进1. 则9变0,进1,为10. 二进制:满2进1 用0和1 ,开表示1,关表示0 十进制0  1    ...

  7. 二进制、八进制、十进制、十六进制之间的转换

    一.简介 1.位权   位权是一个数学名词.对于多位数,处在某一位上的"1"所表示的数值的大小,称为该位的位权.例如十进制第2位的位权为10,第3位的位权为100:而二进制第2位的 ...

  8. 【蓝桥杯】 C++ 试题 基础练习 十进制转十六进制

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

  9. 十进制转换十六进制 、C语言

    #include <stdio.h>/*输入一个十进制整数(可能大于15),转化为十六进制输出*/ /*十进制转十六进制,方法:除16取余数倒排*/ char* convert(int x ...

最新文章

  1. python类方法以及类调用实例方法的理解
  2. Cowboy 源码分析(一)
  3. 2.4 嵌入矩阵-深度学习第五课《序列模型》-Stanford吴恩达教授
  4. 【uniapp】swiper 添加click事件
  5. apache安全—用户访问控制
  6. ESP8266 wifi干扰、钓鱼实现
  7. matlab-robtics学习笔记
  8. php表格单元格怎么实现排序,javascript实现对表格元素进行排序操作
  9. 持续集成coding
  10. php gettext 为空,PHP Gettext
  11. Julia: Array 很不同!
  12. 中国石油大学--生活学习简易FAQ
  13. php开源代码推荐,非常好用的源代码网站推荐,用这些开源代码就够了
  14. M27C64A引脚说明
  15. 北京“宇宙中心”二手房挂单6天11次看房破记录
  16. CNN编辑:扯淡的WSJ,你们专黑Groupon三十年!
  17. win10怎么更改c盘用户计算机名,详解win10系统更改c盘用户名文件夹名称的设置技巧...
  18. linux+qt+分屏显示界面,Qt5支持双屏显示
  19. vue文件在服务器上乱码,解决vue-pdf查看pdf文件及打印乱码的问题
  20. WordPress SEO 技巧

热门文章

  1. 数据结构c语言——树的三种存储结构(双亲表示法、孩子表示法、兄弟表示法)
  2. RadioButton 和 RadioButtonList 比较
  3. 你应该知道的 setTimeout 秘密
  4. 找到出问题的地方了啊
  5. SpringBoot JPA 种子项目
  6. 58同城的字体解密(一)
  7. fwrite函数与fflush函数
  8. Proactol什么是脂肪燃烧
  9. dba怎么报考_2019年报考DBA需要什么条件,要求是不是很高?
  10. 【钉钉-场景化能力包】e签宝提供的电子签名能力