十六进制简介

十六进制(简写为hex或下标16),在数学中是一种逢16进1的进位制。通常用0-9,a-f(或A-F)表示16个基数,即0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F表示0-15。如:十六进制数1F,F是个位数表示15,1是十位数表示1个16,那么它转换为十进制数即为31,16+15=31。16进制数是计算机中常用的进数制,比如颜色代码#FFFFFF、Unicode码U+200D等都可用16进制数表示。

进制转十六进制原理

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

以1234.567为例:

拓展:十进制小数转换为其他进制小数

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

C语言代码实例

方法一:

#include <stdio.h>
#include <string.h>void main()
{char integer[32]="0";char decimal[32]="0";char HEX[] = "0123456789ABCDEF";char hex[64];char hex_temp;int i,j,k = 0;double num, decimal_temp ,integer_temp = 0;printf("输入一个小数:");scanf("%lf", &num);integer_temp = num;while (integer_temp){integer[i++] = HEX[(int)integer_temp % 16];   //对十进制数求余并最终与HEX[]数组中的字符匹配integer_temp = (int)integer_temp / 16;}integer[i]='.';for(j = i - 1; j-k > 0; j--)//调换整数的16进制顺序{hex_temp = integer[j];integer[j] = integer[k++];integer[i-j-1] = hex_temp;}decimal_temp = num-(int)num;for(i = 0; i < 6;i++)//保留6位有效数字{decimal_temp = decimal_temp * 16;decimal[i] =  HEX[(int)decimal_temp];decimal_temp = decimal_temp -(int)decimal_temp;if(decimal_temp == 0) {decimal[i+1]='\0';break;}}strcpy(hex,integer);strcat(hex,decimal);puts(hex);
}

验证:在线进制转换工具

方法二:

#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{char out[20]="0";char out1[20]="0";double temp;double data;int integer=0,i=0;double decimal=0;printf("输入一个小数:");scanf("%lf",&data);integer = (int)data;decimal = data - integer;for(i = 0; i < 10;i++){decimal = decimal*16;sprintf(out1+i,"%X",(int)decimal);temp = decimal -(int)decimal;decimal=temp;if(temp == 0) {out1[i+1]='\0';break;}}sprintf(out,"%X.",integer);strcat(out,out1);printf("out=%s\n",out);return 0;
}

验证:在线进制转换工具
       

IEEE 754标准格式方式存储的浮点转HEX:

符点数(小数)转十六进制C语言代码实例+原理解释(强制类型转换+联合体转换)_xiaohai@Linux的博客-CSDN博客

十进制小数转十六进制(浮点型转16进制)C语言代码+2种方法相关推荐

  1. python中文转16进制_Python 16进制与中文相互转换的实现方法

    Python中编码问题:u'\xe6\x97\xa0\xe5\x90\x8d' 类型的转为utf-8的解决办法 相信小伙伴们遇到过类似这样的问题,python2中各种头疼的转码,类似u'\xe6\x9 ...

  2. qt 中文转十六进制_QT中16进制字符串转汉字

    最经在研究AT指令接受短信,短信是unicode编码,接受后需要根据系统的编码方案进行相关的转码 比如接受到了一串字符4F60597D,它是"你好"的unicode编码,一个uni ...

  3. C#下2\10\16进制互转代码总汇

    1.十进制转换其他:Convert.ToString(十进制数字, 2|8|16进制模式) //十进制转二进制 Convert.ToString(69, 2); //十进制转八进制 Convert.T ...

  4. c语言115写成16进制,C语言指针问题

    C语言指针问题 來源:互聯網  2009-04-01 16:01:29  評論 分類: 電腦/網絡 >> 程序設計 >> 其他編程語言 問題描述: int a=115,*p;p ...

  5. 把16进制转换为ascii字符c语言,ASCII转16进制C语言

    满意答案 u2gseftj278 推荐于 2016.03.01 采纳率:56%    等级:11 已帮助:14340人 以前引别人的,自己懒得再写了呵呵.原理就是这样的,你可以直接用的 //函 数 名 ...

  6. java 16进制数组 字符串_byte数组转换成16进制字符串和字符数组的方法

    byte数组转换成16进制字符串String: public class CommonUtil { /** * byte数组转换成16进制字符串 * @param src * @return */ p ...

  7. C# 中关于汉字与16进制转换的代码

    /// <summary>     /// 从汉字转换到16进制     /// </summary>     /// <param name="s" ...

  8. c语言 乱码转化为16进制_C语言版的16进制与字符串互转函数

    http://www.cnblogs.com/nio-nio/p/3309367.html /* // C prototype : void StrToHex(BYTE *pbDest, BYTE * ...

  9. c语言ascii码字符串转16进制,ASCII转16进制C语言

    满意答案 露露JJA 推荐于 2017.11.26 采纳率:59%    等级:7 已帮助:710人 以前引别人的,自己懒得再写了呵呵.原理就是这样的,你可以直接用的 //函 数 名:AscToHex ...

最新文章

  1. 浅谈(线性)卷积公式为什么要翻转
  2. Linux下oracle 9i图文安装二
  3. 3D模型“换皮肤”有多简单?也就一句话的事
  4. 深圳当代艺术家的一次聚会
  5. 设置了li(float:right),里面的li反过来显示 - 解决办法
  6. c# DataTable DataBinding 应用笔记
  7. MySQL SQL 优化命令行问题 SQL 抓取方式
  8. STM32 DMA传输
  9. 最小化安装虚拟机(建立母盘和快照)
  10. javascript开发HTML5游戏--斗地主(单机模式part1)
  11. 机器学习之K-means算法:深入浅出K-Means算法
  12. 基于深度学习的视觉 SLAM 综述
  13. 网上鞋店html,“鞋店”是“shoes store”还是“shoe store”?
  14. zabbix+snmp+Granfana监控打印机
  15. LaTeX---字符操作
  16. python3+selenium实现126邮箱登陆并发送带附件的邮件(显示等待版本)
  17. 开源或免费虚拟主机管理系统
  18. 【错误解决】Spring JPA的错误及其解决方案
  19. NetBeans 打开/保存具有指定编码的文件插件
  20. 用python语言绘制美丽图形

热门文章

  1. 使用cloneNode函数复制节点元素--svg拖拽复制
  2. 小型永磁直驱风力发电机MPPT控制器开发
  3. 2022巅峰极客PWN
  4. 让弹簧动起来!SOLIDWORKS柔性零部件应用!
  5. 用matlab卷积神经网络遇到的问题——gpu和cpu的结果不一样,最后的预测结果也有问题
  6. qcustomplot绘制实时波形图(频谱图、瀑布图、星座图)并开启opengl支持
  7. Java的日期与时间java.time.Duration的简介说明
  8. 学习-Java类和对象之static关键字之求圆环面积和周长
  9. 快手极速版——青龙脚本
  10. 保证分布式系统数据一致性的6种方案