C++题 十进制转二进制

news2024/10/12 19:18:17

文章目录

  • 1. 使用C++20 std::format
  • 2. 使用 std::bitset 类
  • 3. 手动实现十进制到二进制的转换
    • 反过来,手动二进制到十进制

VisualStudio2022使用C++,进行十进制到二进制的转换,常见的实现方式

1. 使用C++20 std::format

需要将VisualStudio默认的标准修改为C++20
菜单“项目”-“项目属性”,打开如下对话框
在这里插入图片描述
代码中加入头文件

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

int main()
{
	int decimalVal = 68;

	//使用format进行十进制转二进制
	string bStr = format("{:b}", decimalVal);//无前缀
	string bStrPre = format("{:#b}", decimalVal);//0b前缀
	cout << "Decimal: " << decimalVal << endl;
	cout << "Binary: " << bStr << endl;
	cout << "Binary with prefix: " << bStrPre << endl;

	return 0;
}

输出结果为
Decimal: 68
Binary: 1000100
Binary with prefix: 0b1000100

2. 使用 std::bitset 类

bitset是C++标准库中的一个模板类,处理二进制位

#include<iostream>
#include<bitset>
using namespace std;
int main()
{
	int decimalVal = 68;
	//用bitset转换为二进制,8位长度
	bitset<8> binaryVal(decimalVal);

	cout << "Decimal:\t" << decimalVal << endl;
	cout << "Binary:\t" << binaryVal << endl;
	return 0;
}

适用于固定位数,会自动补零
但是如果想输出结果是不定长度的,可以前按照一个较大的固定位数转换,然后将其转为字符串,再去掉高位不必要的零。

3. 手动实现十进制到二进制的转换

提取每一位并构造一个二进制字符串,有助于学习和理解基本的进制转换,函数也可以写成递归形式

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

string decimalToBinary(int decimalVal)
{
	string binaryVal = "";//初始化二进制位串为空
	while (decimalVal > 0)
	{
		binaryVal = to_string(decimalVal % 2) + binaryVal;//将余数拼接到二进制位串的左侧
		decimalVal /= 2;
	}
	return binaryVal;
}
void decimalToBinaryRec(int decimalVal)
{
	if(decimalVal > 1)
	{
		decimalToBinaryRec(decimalVal / 2); //递归处理
	}
	cout << (decimalVal % 2); //输出余数,即二进制位,递归结束后倒序输出
	                          
}
int main()
{
	int dVal = 68;
	cout << "Decimal: " << dVal << endl;
	cout << "Binary: ";
	decimalToBinaryRec(dVal);
	cout << endl;

	return 0;
}

输出
Decimal: 68
Binary: 1000100

反过来,手动二进制到十进制

遍历二进制字符串,从最低位到最高位,依次乘以 2 的对应次方,然后累加到 decimalValue 中

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

int binaryToDecimal(const string& binaryStr)
{
	int decimalVal = 0;
	int length = binaryStr.length();
	int i;

	//从右到左遍历二进制字符串
	for (i = 0; i < length; i++)
	{
		if (binaryStr[length - 1 - i] == '1')
		{
			decimalVal += pow(2, i);//每一位的权重为2的i次方
		}
	}

	return decimalVal;
}
int main()
{
	string bStr = "10001010";//二进制字符串
	int dVal;
	dVal = binaryToDecimal(bStr);
	cout << "Decimal: " << dVal << endl;
	return 0;
}

如果二进制已经以整数的形式存在,可以直接将其转换为十进制数显示

#include<iostream>
using namespace std;

int main()
{
	int binaryVal = 0b10001010; // 二进制字面量,直接赋给整型变量
	                            // 默认十进制输出
	cout << "Decimal: " << binaryVal << endl;
	return 0;
}

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

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

相关文章

信息学奥赛复赛复习16-CSP-J2022-01乘方-循环特判、pow函数、快速幂

PDF文档回复:20241012 此前解析题&#xff0c;P8813 [CSP-J 2022] 乘方&#xff0c;给出了循环的解题思路&#xff0c;当时在洛谷提交是通过的&#xff0c;后台收到留言&#xff0c;a1,b1e9会炸吧&#xff1f;&#xff0c;确实啊整除要求1s内循环次数最大可以到10^7,现在测试数…

微信自动化工具,让多微管理更轻松更高效!

对于多个微信账号的管理&#xff0c;往往会让人感到繁琐和耗时。 这时&#xff0c;通过个微管理系统实现微信自动化设置&#xff0c;将大大提升我们的管理效率。 1、批量自动加好友 只需将客户号码一次性导入系统&#xff0c;设置好加好友规则&#xff0c;系统便会自动发送加…

PS文件保存后突然消失?别急,这里有7种解决方案!

咨询&#xff1a;“我刚做完的PS文件&#xff0c;保存得好好的&#xff0c;怎么就突然消失了呢&#xff1f;连回收站里都没有&#xff0c;这可怎么办才好。” 面对PS&#xff08;Photoshop&#xff09;文件在保存后突然消失的情况&#xff0c;许多设计师和图像处理爱好者可能会…

List的实现类

1.ArrayList&#xff08;数组&#xff09; &#xff08;1&#xff09;代码 新建学生类&#xff1a; package com.collection;public class Student {private String name;private int age;//添加构造方法 都是使用altenter快捷键public Student() {this.name name;this.age…

OCR经典神经网络(二)文本检测算法DBNet算法原理及其在icdar15数据集上的应用

OCR经典神经网络(二)文本检测算法DBNet算法原理及其在icdar15数据集上的应用 场景文本检测任务&#xff0c;一直以来是OCR整个任务中最为重要的一环。虽然有一些相关工作是端对端的&#xff0c;但是从工业界来看&#xff0c;相关落地应用较为困难。因此&#xff0c;两阶段的OC…

RUM性能优化之图片加载

作者&#xff1a;三石 在现代Web开发中&#xff0c;图片作为内容表达的核心元素&#xff0c;其加载效率直接影响到页面的整体性能和用户体验。随着高清大图和动态图像的普及&#xff0c;优化图片加载变得尤为重要。RUM作为一种主动监测技术&#xff0c;能够帮助开发者从真实用户…

【Linux-基础IO】软硬链接+动静态库

一、软硬链接 见一见 软连接 硬连接 通过观察我们发现以下几点&#xff1a; 1.ll - i后&#xff0c;软连接形成的文件有指向&#xff0c;并且软连接的Inode编号与对应文件的Inode编号不一样 2.ll - i后&#xff0c;硬连接形成的文件与对应的文件Inode编号一样 3.软连接…

贪心+dfs,CF 1975D - Paint the Tree

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1975D - Paint the Tree 二、解题报告 1、思路分析 我们从树中一点出发&…

【uni-app】HBuilderX安装uni-ui组件

目录 1、官网找到入口 2、登录帐号 3、打开HuilderX 4、选择要应用的项目 5、查看是否安装完成 6、按需安装 7、安装完毕要重启 8、应用 前言&#xff1a;uniapp项目使用uni-ui组件方式很多&#xff0c;有npm安装等&#xff0c;或直接创建uni-ui项目&#xff0c;使用un…

汽车免拆诊断案例 | 2013款宝马116i车偶尔加速不良

故障现象  一辆2013款宝马116i车&#xff0c;搭载N13B16A 发动机&#xff0c;累计行驶里程约为12.1万km。车主反映&#xff0c;该车行驶中偶尔加速无反应&#xff0c;且发动机故障灯异常点亮。 故障诊断 接车后试车&#xff0c;故障现象无法再现。用故障检测仪检测&#xff…

[论文阅读] MoAI: Mixture of All Intelligence for Large Language and Vision Models

原文链接&#xff1a;http://arxiv.org/abs/2403.07508 源码链接&#xff1a;https://github.com/ByungKwanLee/MoAI 启发&#xff1a;这篇文章提供一个比较新奇的思路&#xff0c;将传统CV小模型的输出进行语言化&#xff0c;转换成统一格式&#xff0c;传入到后续的模型中&…

8. Control Station Studio控制站开发平台概述

更多内容见CSDN博客专栏&#xff1a;无人机飞控 相关资源&#xff1a;https://gitee.com/ss15/ph47 8.1. 概述 Ground Control Station&#xff08;CSS&#xff09;是一个地面站软件开发平台&#xff0c;通过对控制站工程的设计搭建&#xff0c;从而开发出面向各种不同用途&a…

【软件测试】基本知识2

一、能对穷举场景设计测试点——等价类划分法 说明&#xff1a;在所有测试数据中&#xff0c;具有某种共同特征的数据集合进行划分 分类 有效等价类&#xff1a;满足需求的数据集合无效等价类&#xff1a;不满足需求的数据集合 步骤 明确需求确定有效和无效等价类提取数据编写…

linux使用xhell连接特别慢

linux使用xhell连接特别慢 在此记录一下 1.vi /etc/ssh/sshd_config&#xff0c;修改如下配置 GSSAPIAuthentication yes 修改 no UseDNS yes 修改 no 2.重新启动sshd服务 systemctl restart sshd

从混乱到卓越:六西格玛是如何助力企业摆脱困境的

六西格玛&#xff0c;这一源自摩托罗拉、发扬于通用电气的管理方法&#xff0c;以其严谨的数据分析、持续改进的理念&#xff0c;成为了企业转型升级的利器。它不仅仅是一套工具和方法论&#xff0c;更是一种追求卓越的文化和思维方式。在六西格玛的视角下&#xff0c;企业的一…

基于yolov8、yolov5的鸟类检测系统(含UI界面、数据集、训练好的模型、Python代码)

项目介绍 项目中所用到的算法模型和数据集等信息如下&#xff1a; 算法模型&#xff1a;     yolov8、yolov8 SE注意力机制 或 yolov5、yolov5 SE注意力机制 &#xff0c; 直接提供最少两个训练好的模型。模型十分重要&#xff0c;因为有些同学的电脑没有 GPU&#xff0…

当下流行的【疗愈】是什么?疗愈门店未来发展前景分析|个案疗愈系统源码私

▶ 「疗愈」是什么&#xff1f; 疗愈通常指的是一种综合性的治疗方法&#xff0c;旨在帮助人们恢复身心健康、平衡和内在和谐。可能包括心理治疗、身体疗法、能量疗法、草药疗法、冥想和其他练习&#xff0c;以促进个体的整体健康和福祉。 疗愈的具体内容和方法会因不同的文化…

论文笔记:Pre-training to Match for Unified Low-shot Relation Extraction

论文来源&#xff1a;ACL 2022 论文地址&#xff1a;https://aclanthology.org/2022.acl-long.397.pdf 论文代码&#xff1a;https://github.com/fc-liu/MCMN &#xff08;笔记不易&#xff0c;请勿恶意转载抄袭&#xff01;&#xff01;&#xff01;&#xff09; 目录 A…

IDEA下面的Services不见了(解决方案)

大家使用IDEA有时候新打开个项目这个东西不会自动出现如何解决 配置方法&#xff1a; 右上角打开进入Edit Configurations 进入后我们看到里面是没有SpringBoot相关内容的 点击加号选择SpringBoot 然后Apply Ok即可&#xff0c;现在IDEA下面就会出现Service了&#xff0c;打…

海外盲盒系统开发,开拓海外盲盒市场

近几年&#xff0c;盲盒出海成为热潮&#xff0c;吸引着众多企业转向海外布局&#xff01;国内盲盒市场逐渐饱和&#xff0c;反而海外市场存在着巨大的商机&#xff0c;这促使着各大企业开始向海外发展。这几年中&#xff0c;海外盲盒市场也创造出了越来越多的惊喜&#xff0c;…