各种十进制转十六进制的方法
写程序时我们经常遇到进制转换的问题,最常见的就是十进制和十六进制之间的转换,这篇就记录一下如何从十进制转换为十六进制。
十进制转十六进制字符串输出
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就是一个两个字节的十六进制数了。
以上就是十进制转换为十六进制的各种常用方法了。
各种十进制转十六进制的方法相关推荐
- python 十进制转二进制,十进制转八进制,十进制转十六进制 的方法
python 转二进制使用:bin, 八进制使用oct 十六进制使用:hex 下面说下使用 a = 1234 print("十进制数为: ", a) print("转换为 ...
- 十六进制转换html,如何使用JavaScript将十进制转换为十六进制?
JavaScript中有很多内置函数可以帮我们进行数(进)制转换.那么给定一个十进制数字,如何将数字从十进制转换为十六进制?下面本篇文章就来给大家介绍一个使用JavaScript将十进制转换为十六进制 ...
- 二进制与八进制、十进制、十六进制之间的转换
首先我们常用的进制就有二进制.八进制.十进制.十六进制,他们之间主要的区别在于运算时逢几进一位,比如二进制是逢二进一位,八进制是逢八进一位,十进制是逢十进一,同样十六进制是逢十六进一. 进制有两个基本 ...
- arduino十进制转十六进制
以下是arduino十进制转十六进制的方法,如果有什么可以改进的地方请留言 打印 Serial.print(inByte, HEX); 十进制转十六进制 //十进制转十六进制 String tohex ...
- iOS 十进制转十六进制
iOS 十进制转十六进制的方法函数 -(NSString *)ToHex:(long long int)tmpid { NSString *nLetterValue; NSString *str =@ ...
- 二进制,十进制,十六进制,相互转化
二进制,十进制,十六进制,相互转化 基本原理: 十进制:满10进1 0--9共有十个数字,满10进1. 则9变0,进1,为10. 二进制:满2进1 用0和1 ,开表示1,关表示0 十进制0 1 ...
- 二进制、八进制、十进制、十六进制之间的转换
一.简介 1.位权 位权是一个数学名词.对于多位数,处在某一位上的"1"所表示的数值的大小,称为该位的位权.例如十进制第2位的位权为10,第3位的位权为100:而二进制第2位的 ...
- 【蓝桥杯】 C++ 试题 基础练习 十进制转十六进制
问题描述 问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式.它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15.十六进制的计数 ...
- 十进制转换十六进制 、C语言
#include <stdio.h>/*输入一个十进制整数(可能大于15),转化为十六进制输出*/ /*十进制转十六进制,方法:除16取余数倒排*/ char* convert(int x ...
最新文章
- python类方法以及类调用实例方法的理解
- Cowboy 源码分析(一)
- 2.4 嵌入矩阵-深度学习第五课《序列模型》-Stanford吴恩达教授
- 【uniapp】swiper 添加click事件
- apache安全—用户访问控制
- ESP8266 wifi干扰、钓鱼实现
- matlab-robtics学习笔记
- php表格单元格怎么实现排序,javascript实现对表格元素进行排序操作
- 持续集成coding
- php gettext 为空,PHP Gettext
- Julia: Array 很不同!
- 中国石油大学--生活学习简易FAQ
- php开源代码推荐,非常好用的源代码网站推荐,用这些开源代码就够了
- M27C64A引脚说明
- 北京“宇宙中心”二手房挂单6天11次看房破记录
- CNN编辑:扯淡的WSJ,你们专黑Groupon三十年!
- win10怎么更改c盘用户计算机名,详解win10系统更改c盘用户名文件夹名称的设置技巧...
- linux+qt+分屏显示界面,Qt5支持双屏显示
- vue文件在服务器上乱码,解决vue-pdf查看pdf文件及打印乱码的问题
- WordPress SEO 技巧