C++ 十进制与十六进制转换

文章作者:里海
来源网站:里海C\C++专栏


十进制与十六进制转换

#include <iostream>  
#include <string>  
using namespace std;

//十进制整数转十六进制字符串
string DecimalToHex(long long decimal)
{
    string hex = "";
    while (decimal > 0) 
    {
        int remainder = decimal % 16;
        if (remainder < 10) 
            hex = (char)(remainder + '0') + hex;
        else 
            hex = (char)(remainder + 'A' - 10) + hex;
        decimal /= 16;
    }
    return hex;
}

//十六进制字符串转十进制整数
long long HexToDecimal(string hex)
{
    long long decimal = 0;
    for (int i = 0; i < hex.size(); i++)
    {
        char c = hex[i];
        if (c >= '0' && c <= '9')
            decimal = decimal * 16 + (c - '0');
        else
            decimal = decimal * 16 + (c - 'A' + 10);
    }
    return decimal;
}

int main() 
{
    long long n = 3123197280;
    cout << n << endl;

    string hex = DecimalToHex(n);
    cout << hex << endl;

    n = HexToDecimal(hex);
    cout << n << endl;

    cin.get();
    return 0;
}

输出:
3123197280
BA283560
3123197280

在这里插入图片描述

进制转换

十进制和十六进制之间的转换在计算机科学和日常生活中都是非常重要的。十进制是我们日常生活中常用的计数系统,基于10个不同的数字(0-9)进行计数。而十六进制则是计算机内部使用的计数系统,基于16个不同的数字(0-9和A-F)进行计数。

要进行十进制到十六进制的转换,我们可以使用以下步骤:

  • 将十进制数拆分成小数点左右两部分。
  • 将小数部分转换为十六进制,每个十六进制数对应4位二进制数。例如,0.375的二进制表示为0.011,然后转换为十六进制就是0.3。
  • 将整数部分转换为十六进制,方法相同。例如,12的二进制表示为1100,转换为十六进制就是C。
  • 将小数和整数部分的结果合并,得到最终的十六进制表示。例如,将0.3和12合并,得到的十六进制表示为0.3C。

同样,从十六进制转换到十进制,我们可以使用以下步骤:

  • 将十六进制数拆分成小数点左右两部分。
  • 将小数部分转换为二进制,每个十六进制数对应4位二进制数。例如,0.3的二进制表示为0.0111,然后转换为十进制就是0.375。
  • 将整数部分转换为二进制,方法相同。例如,C的二进制表示为1100,然后转换为十进制就是12。
  • 将小数和整数部分的结果合并,得到最终的十进制表示。例如,将0.375和12合并,得到的十进制表示为12.375。
    在计算机科学中,十六进制的使用非常普遍,因为它可以有效地表示二进制数据,而二进制在计算机内部处理数据的方式非常自然地映射到十六进制的表示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/166792.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

求二叉树的高度(可运行)

输入二叉树为&#xff1a;ABD##E##C##。 运行环境&#xff1a;main.cpp 运行结果&#xff1a;3 #include "bits/stdc.h" using namespace std; typedef struct BiTNode{char data;struct BiTNode *lchild,*rchild;int tag; }BiTNode,*BiTree;void createTree(BiTre…

好莱坞罢工事件!再次警醒人类重视AI监管,人工智能矛盾一触即发!

原创 | 文 BFT机器人 关注国外新闻的应该都知道&#xff0c;最近焦点新闻是好莱坞史上最大规模的一场罢工运动。这场维持118天的罢工运动&#xff0c;终于在11月9号早上12点在好莱坞宣布结束。这场罢工运动虽是演员工会和代表资方的影视制片人联盟的茅盾&#xff0c;但直接引发…

智达方通EPM,解决企业经营分析和管理难题

随着我国企业的不断发展&#xff0c;其战略目标也不断壮大&#xff0c;在企业经营活动和战略执行方面遇到的挑战随之增多&#xff0c;面临着业务、财务和企业目标不对等&#xff0c;工作执行力度不够、流程难跟踪&#xff0c;相关数据无法共享、信息闭塞等痛点。在此现状下&…

YOLOv8改进 | 2023 | InnerIoU、InnerSIoU、InnerWIoU、FocusIoU等损失函数

论文地址&#xff1a;官方Inner-IoU论文地址点击即可跳转 官方代码地址&#xff1a;官方代码地址-官方只放出了两种结合方式CIoU、SIoU 本位改进地址&#xff1a; 文末提供完整代码块-包括InnerEIoU、InnerCIoU、InnerDIoU等七种结合方式和其Focus变种 一、本文介绍 本文给…

pyhton重启Deployment和状态

import os import timefrom kubernetes import client, config# 指定配置文件路径 config.load_kube_config(config_fileconfig)# 创建 Kubernetes API 客户端 v1 client.AppsV1Api() v2 client.CoreV1Api() # 指定命名空间 namespace default# 指定 Deployments 名称列表 d…

Vue2基础-Vue对象进阶介绍1

文章目录 一、绑定样式绑定class样式绑定style样式总结 二、渲染条件渲染列表渲染语法key详解 三、Vue检测数据原理问题解决 四、收集表单数据五、过滤器定义语法: 六、内置指令回顾v-text指令:v-htmlcookie问题 v-clock指令v-oncev-pre 一、绑定样式 绑定class样式 <!-- …

【漏洞复现】浙大恩特CRM大客户系统sql注入0day(三)

漏洞描述 杭州恩软信息技术有限公司(浙大恩特)提供外贸管理软件、外贸客户管理软件等外贸软件,是一家专注于外贸客户资源管理及订单管理产品及服务的综合性公司。 浙大恩特客户资源管理系统中的T0140_editAction.entweb接口存在SQL注入漏洞,攻击者可通过此漏洞获取企业数…

OpenAI前CEO萨姆·阿尔特曼可能重返CEO职位;用LoRA微调LLM的实用技巧

&#x1f989; AI新闻 &#x1f680; OpenAI前CEO萨姆阿尔特曼可能重返CEO职位 摘要&#xff1a;据报道&#xff0c;OpenAI前CEO萨姆阿尔特曼有望重新担任CEO职位&#xff0c;并对公司董事会进行重大改变。微软等投资人正努力恢复阿尔特曼的职位&#xff0c;尽管董事会仍然是…

振弦式渗压计的安装方式及注意事项

振弦式渗压计的安装方式及注意事项 振弦式渗压计是一种常用的测量土壤水位的仪器&#xff0c;可以用于监测地下水位、土壤含水量、岩层渗透系数等参数。其原理是依靠振弦的共振频率变化来测量介质中的压力变化。 安装方式&#xff1a; 1.适当选取安装点&#xff1a;振弦式渗压…

网络安全涉及哪些方面?

1.系统安全&#xff1a;运行系统安全即保证信息处理和传输系统的安全。它侧重于保证系统正常运行&#xff0c;避免因为系统的损坏而对系统存储、处理和传输的消息造成破坏和损失&#xff0c;避免由于电磁泄露&#xff0c;产生信息泄露&#xff0c;干扰他人或受他人干扰。 2. 网…

安全测试工具分为 SAST、DAST和IAST 您知道吗?

相信刚刚步入安全测试领域的同学都会发现&#xff0c;安全测试领域工具甚多&#xff0c;不知如何选择&#xff01;其实安全测试工具大致分为三类&#xff1a;SAST、DAST和IAST。本文就带大家快速的了解这三者的本质区别&#xff01; SAST &#xff08;Static Application Secu…

Python懒羊羊

目录 系列文章 写在前面 绘图基础 懒羊羊 写在后面 系列文章 序号文章目录直达链接表白系列1浪漫520表白代码https://want595.blog.csdn.net/article/details/1306668812满屏表白代码https://want595.blog.csdn.net/article/details/1297945183跳动的爱心https://want595…

Redis:Java客户端

前言 "在当今大数据和高并发的应用场景下&#xff0c;对于数据缓存和高效访问的需求日益增长。而Redis作为一款高性能的内存数据库&#xff0c;以其快速的读写能力和丰富的数据结构成为众多应用的首选。与此同时&#xff0c;Java作为广泛应用于企业级开发的编程语言&…

GPU Microarch 学习笔记【3】Tensor Core

目录 1. 指令与架构 2. Load 3. 计算MMA 4. Set, Step 与thread group 5. OCTET 6. Tensor Core微架构 7. Final Nvidia自从Volta/Turing&#xff08;2018&#xff09;架构开始&#xff0c;在stream multi processor中加入了tensor core&#xff0c;用于加速矩阵计算。如…

PLC信号发生器(余弦信号)

SMART PLC正弦信号发生器算法公式和梯形图代码请查看下面文章链接: PLC信号发生器(梯形图)-CSDN博客文章浏览阅读393次。PLC信号发生器(SCL语言)的详细介绍请参看下面文章PLC信号发生器(博途SCL)_RXXW_Dor的博客-CSDN博客信号发生器的应用请参看下面的博客文章,在演示滤波器…

STM32中的加速度计驱动程序与姿态控制实现

加速度计广泛应用于姿态控制、运动跟踪和导航等领域。本文将介绍如何在STM32微控制器中实现加速度计的驱动程序&#xff0c;并利用测得的加速度数据实现姿态控制功能。 一、STM32与加速度计概述 1. STM32微控制器 STM32是STMicroelectronics推出的一系列32位微控制器&#…

Python爬虫技术系列-03/4flask结合requests测试静态页面和动态页面抓取

python构建web服务 flask内容参考:Flask框架入门教程&#xff08;非常详细&#xff09; flask安装与运行测试 安装flask pip install flask创建一个webapp.py文件&#xff0c;内容如下 from flask import Flask# 用当前脚本名称实例化Flask对象&#xff0c;方便flask从该脚…

Linux常用命令——bunzip2命令

在线Linux命令查询工具 bunzip2 创一个bz2文件压缩包 补充说明 bunzip2命令解压缩由bzip2指令创建的”.bz2"压缩包。对文件进行压缩与解压缩。此命令类似于“gzip/gunzip”命令&#xff0c;只能对文件进行压缩。对于目录只能压缩目录下的所有文件&#xff0c;压缩完成…

信息安全和网络空间安全选哪个?

网络空间安全和信息安全这2个专业都是计算机专业&#xff0c;而且是最适合走网络安全方向的2个热门专业&#xff0c;那么它们有什么不一样&#xff1f;又该如何选择&#xff1f;过来人告诉你答案。 一、相同之处 1. 目标相同 网络空间安全专业和信息安全专业都致力于保护计算…

SpringBoot3.x最简集成SpringDoc-OpenApi

为什么使用SpringDoc 在SpringBoot低版本时一般使用Swagger扫描接口生成Json格式的在线文档&#xff0c;然后通过swagger-ui将Json格式的文档以页面形式展示文档。可惜遗憾的是swagger更新到3.0.0版本(springfox)后不更新了。 SpringBoot3.x以后需要的JDK版本最低为Java17&…