C++中的数学问题---进制转换

news2025/1/10 12:36:11

二进制转十六进制

string binToHex(string bin){
    string hex="";
    if(bin.size()%4!=0){
        for(int i=0;i<(4-bin.size()%4);i++){
            bin="0"+bin;
        }
    }
    for(int i=0;i<bin.size();i+=4){
        string tmp=bin.substr(i,4);
        bitset<4>b(tmp);
        hex+=b.to_ulong()<10?char(b.to_ulong()+'0'):char(b.to_ulong()+'A'-10);

    }
    return hex;
}

十六进制转二进制

string hexToBin(string hex){
    bitset<8>s(stoi(hex,nullptr,16));
    return s.to_string();
}

测试demo

#include <iostream>
#include<sstream>
#include<cstring>
#include<cctype>
#include<bitset>
using namespace std;

string binToHex(string bin){
    string hex="";
    if(bin.size()%4!=0){
        for(int i=0;i<(4-bin.size()%4);i++){
            bin="0"+bin;
        }
    }
    for(int i=0;i<bin.size();i+=4){
        string tmp=bin.substr(i,4);
        bitset<4>b(tmp);
        hex+=b.to_ulong()<10?char(b.to_ulong()+'0'):char(b.to_ulong()+'A'-10);

    }
    return hex;
}

string hexToBin(string hex){
    bitset<8>s(stoi(hex,nullptr,16));
    return s.to_string();
}
int main() {
    string str="FF";
    cout<<"hex is : "<<str<<endl;
    cout<<"hexToBin: ";
    cout<<hexToBin(str)<<endl;
    cout<<"binToHex: ";
    cout<<binToHex(hexToBin(str))<<endl;


    return 0;
}

运行结果

十进制转二进制

long long  decToBin(int dec){
	long long   res = 0, j = 1;
	while(dec){
		res = res + j * (dec % 2);
		dec = dec / 2;
		j = j * 10;
	}
	return res;
}

二进制转十进制

int binToDec(string str){
    int res=0;
    for(int i=0;i<str.size();i++){
        int num=str[i]-'0';
        res=res*2+num;
    }
    return res;
}

测试demo

#include <iostream>
#include<sstream>
#include<cstring>
#include<cctype>
using namespace std;

long long  decToBin(int dec){
	long long   res = 0, j = 1;
	while(dec){
		res = res + j * (dec % 2);
		dec = dec / 2;
		j = j * 10;
	}
	return res;
}

int binToDec(string str){
    int res=0;
    for(int i=0;i<str.size();i++){
        int num=str[i]-'0';
        res=res*2+num;
    }
    return res;
}
int main() {
    int num;
    while (cin >>num) { 
        cout<<"num is : "<<num<<endl;
        cout<<"decToBin: ";
        cout<<decToBin(num)<<endl;
        cout<<"binToDec: ";
        cout<<binToDec(to_string(decToBin(num)))<<endl;
         
    }
    return 0;
}

测试结果

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

定点乘法器优化(3)---华为杯

一. 简介 在上次优化中&#xff0c;针对部分积生成进行了一个优化&#xff0c;将一个部分积生成的门电路数从221减少到了119。虽然减少了很多&#xff0c;但不够。本次将提出另外一种新的编码与部分积生成方式&#xff0c;将门电路的个数大大减少。 二. 新的编码方式 基4 Bo…

fiddler基本使用(上)

目录 1、Fiddler介绍 2、fiddler下载及安装证书 4、抓取手机包 5、fifter 数据包过滤 6、模拟限速 1、Fiddler介绍 本质&#xff1a;位于客户端与服务器端之间的代理。 fiddler会捕获客户端、服务器端的包&#xff0c;发送给彼此。 代理设置&#xff1a; 2、fiddler下载及…

VMware虚拟机无法上网的解决办法

&#xff08;1&#xff09;1、在虚拟机右下角的网络适配器上面观察该图标是否是有绿色的灯在闪烁&#xff0c;如果网络适配器是灰色的证明虚拟机的网络没有打开&#xff0c;而是被禁用了&#xff0c;在适配器上点击鼠标右键&#xff0c;打开【设置】&#xff0c;在【已连接】、…

医院影像PACS系统和放射影像科业务

前言&#xff1a;对于医院的放射科来说&#xff0c;要实现其业务效率&#xff0c;增强患者的就医体验&#xff0c;提升医院的服务质量&#xff0c;那么一个良好的PACS系统能够高效实现这一目标。本文以放射科为例&#xff0c;对PACS系统和就医流程进行一个简单的介绍&#xff0…

Golang time 包以及日期函数

time 包 在 golang 中 time 包提供了时间的显示和测量用的函数。 time.Now()获取当前时间 可以通过 time.Now()函数获取当前的时间对象&#xff0c;然后获取时间对象的年月日时分秒等信息。 示例代码如下&#xff1a; package mainimport ("fmt""time" )…

js实现上下无缝滚动(不卡顿)

效果图如下&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport"…

Java阶段五Day13

Java阶段五Day13 文章目录 Java阶段五Day13回顾昨天思路Redis五种数据类型和类型无关的命令基本类型——String基本类型——hash基本类型——list基本类型——set基本类型——zset&#xff08;sorted set&#xff09; Redis实现分布式锁抢锁的设计思路整改当前消费逻辑添加分布…

前端 | ( 十三)CSS3简介及基本语法(下)| 伸缩盒模型 | 尚硅谷前端html+css零基础教程2023最新

学习来源&#xff1a;尚硅谷前端htmlcss零基础教程&#xff0c;2023最新前端开发html5css3视频 系列笔记&#xff1a; 【HTML4】&#xff08;一&#xff09;前端简介【HTML4】&#xff08;二&#xff09;各种各样的常用标签【HTML4】&#xff08;三&#xff09;表单及HTML4收尾…

网工内推 | 网络安全工程师,有安全相关证书优先

01 航天四创科技有限责任公司 招聘岗位&#xff1a;网络安全工程师 职责描述&#xff1a; 1、根据项目的投标技术方案、适配测试方案等&#xff0c;制定网络系统、安全系统、主机系统、存储系统等的深化设计方案和实施方案&#xff1b; 2、安装、配置和搭建基于软硬件设备的网…

RocketMQ基本概念与入门

文章目录 MQ基本结构依赖案例:productConsumer 核心概念1.nameserver2.broker3.主题队列4.queue队列5. 生产者6.消费者分组和生产者分组7.消费点位 MQ基本结构 message: 消息数据对象product: 程序代码,生成消息,发送消息到队列consumer: 程序代码,监听(绑定)队列,获取消息,执行…

MPU6050简介

文章目录 简介参数IIC通信的从机地址硬件电路框图 简介 MPU6050是一个6轴姿态传感器&#xff0c;可以测量芯片自身X,Y,Z轴的加速度&#xff0c;角速度&#xff0c;从而得到姿态角&#xff0c;用于平衡车&#xff0c;飞行器等。 内部结构&#xff1a; 3轴加速度计&#xff08;A…

数据库运维作业2

1.理解MySQL主从复制原理。 主要基于MySQL二进制日志 主要包括三个线程&#xff08;2个I/O线程&#xff0c;1个SQL线程&#xff09; 1&#xff09;MySQL将数据变化记录到二进制日志中&#xff1b; 2&#xff09;Slave将MySQL的二进制日志拷贝到Slave的中继日志中&#xff1b; 3…

vscode插件unocss无法正常使用

官网文档&#xff1a;https://alfred-skyblue.github.io/unocss-docs-cn/integrations/vscode#VPSidebarNav 无法使用的原因 很多人在使用的时候会配置uno.config.ts文件&#xff0c;但这个文件不一定放置在根目录下。扩展程序将尝试在您的项目中查找 UnoCSS 配置。如果未找到…

selenium 获取请求响应信息,包括请求的响应头和响应体

在我们使用selenium请求网页时&#xff0c;有时不想从浏览器解析后的html标签获取数据&#xff0c;如果能直接获取url返回的json格式数据会更容易解析。就像request和scrapy爬虫返回的响应数据一样。那么&#xff0c;我们用selenium应该怎么做呢&#xff1f; selenium并不支持…

pytest——断言后继续执行

前言 在编写测试用例的时候&#xff0c;一条用例可能会有多条断言结果&#xff0c;当然在自动化测试用例中也会遇到这种问题&#xff0c;我们普通的断言结果一旦失败后&#xff0c;就会出现报错&#xff0c;哪么如何进行多个断言呢&#xff1f;pytest-assume这个pytest的插件就…

Git的核心概念:探索Git中的提交、分支、合并、标签等核心概念,深入理解其作用和使用方法

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

学生管理系统-02项目案例(2)

一、表单的验证 完成表单验证的步骤 在el-form表单元素上添加一个rules属性&#xff0c;rules中配置相关的验证规则 在el-form表单元素上添加:model将data中验证的响应式数据关联起来 在el-form-item中添加prop属性&#xff0c;该属性一定和rules中的key值对应来 <el-fo…

区块链实验室(12) - 网络拓扑对PBFT共识流量的影响

区块链实验室(10) - 实例说明PBFT的共识过程说明了1个简单又极端的网络&#xff0c;在这个网络中完成1个交易的共识&#xff0c;需要26次通信&#xff0c;见下图所示。 换1个网络&#xff0c;这个网络是强连通图&#xff0c;见下图。 在这个网络中完成1次交易&#xff0c;流量见…

vue3 +ts 报错 index.vue 不是模块

那是因为index.vue中创建了一个空的script标签&#xff0c;而且语法使用的是ts语法。vue-cli会用ts语法解析和校验 如果是无状态组件&#xff0c;删掉 如果是有状态组件&#xff0c;导出该组件的实例 去掉null的script后&#xff1a;

如何防止word转pdf乱码?这几个方法你试过了吗?

在工作中&#xff0c;我们常常需要处理各种类型的文件&#xff0c;并且会根据不同需求进行PDF文件与其他格式文件的相互转换&#xff0c;然而有时候在将Word文件转换成PDF时&#xff0c;可能会遇到乱码等问题&#xff0c;让人感到困扰。今天我将介绍两种方法&#xff0c;让您在…