首页 > 其他分享 >进制转换热知识

进制转换热知识

时间:2024-01-01 21:33:07浏览次数:29  
标签:10 转换 进制 int 知识 str include

更多详细内容参见此博客 传送门

作者的号在这里

前言

还在为搞不懂进制转换的原理而感到苦恼吗?

还在为考试因为进制转换惨痛离场吗?

还在为不会打进制转换代码而沮丧吗?

STL库函数+进制转换极简代码

满足你的一切需求!


怎样实现进制转换(有几种方式)

  1. 自定义进制转换函数

将一个n进制的数转换为m进制的数,这个过程需要一个过渡,就是先将一个n进制的数转换为10进制,再将十进制数转换为m进制的数,任意进制转换为十进制的思路就是按权展开,十进制转任意进制就是求余数,直到商数为零,然后逆向取余。

  1. 调用C++中的STL函数直接转换(着重讲解)

实现

首先,让我隆重欢迎

printf的自带进制转换和cout自带进制转换

作为c++“特性”,STL库里带几个函数是很正常的

#include <iostream>

#include <cstdio>

#include <algorithm>

#include <bitset>

using namespace std;

int main(){

printf("%05o\n",300);    //按八进制格式输出,保留5位高位补零

printf("%03d\n",300);    //按十进制格式输出,保留3位高位补零

printf("%05x\n",300);    //按十六进制格式输出,保留5位高位补零

cout<<"300的8进制:"  <<std::oct <<300<<endl;  	//按八进制格式输出

cout<<"300的10进制:" <<std::dec <<300<<endl;  	//按十进制格式输出

cout<<"300的16进制:" <<std::hex <<300<<endl;  	//按十六进制格式输出

cout<<"300的2进制:"  <<bitset<8>(300)<<endl;    //<8>:表示保留8位输出

return 0;

}

还算有点帮助吧?如果这个还是记不住,那么下面这个maybe正合你的心意

_itoa() 函数:

头文件: #include
作用: 将一个10进制数转换为任意的2-36进制字符串
格式: itoa(num, str, m); num是一个int型的,是要转化的10进制数,str是转化结果,m为目标进制。
#include<cstdio> 

#include<cstdlib> 

int main(){  

  int num = 10;  
  
  char str[100];  
  
  _itoa(num, str, 2);  //c++中一般用_itoa,用itoa也行,
  
  printf("%s\n", str);  
  
  return 0;  

  }

函数的世界真奇妙,STL函数合心意

去刷几道题吧!

P1143 进制转换

B2143 进制转换

P2084 进制转换

B3620 x 进制转 10 进制

B3619 10 进制转 x 进制

B3869 [GESP202309 四级] 进制转换

B3849 [GESP样题 三级] 进制转换

附上# B3869 [GESP202309 四级] 进制转换官方代码

#include <iostream>
#include <cstring>
using namespace std;
int trans_digit(int k, char c) {
	if (c <= '9')
		return (c - '0');
	return (c - 'A' + 10);
}
long long trans(int k, char str[]) {
	int l = strlen(str);
	long long res = 0, pw = 1;
	for (int i = l - 1; i >= 0; i--) {
		res += pw * trans_digit(k, str[i]);
		pw *= k;
	}
	return res;
}
int main() {
	int n = 0;
	cin >> n;
	for (int t = 0; t < n; t++) {
		int k = 0;
		char str[10];
		cin >> k >> str;
		cout << trans(k, str) << endl;
	}
	return 0;
}

标签:10,转换,进制,int,知识,str,include
From: https://www.cnblogs.com/Gary-NotFound/p/17939238

相关文章

  • 结构体知识
    如何定义结构体1.//struct结构体关键字Stu结构体标签 structStu结构体类型structStu{ //成员变量 charname[20]; shortage; chartele[12]; charsex[5];}s1,s2,s3;//相当于结构体类型创建好之后直接创建三个全局的结构体变量intmain(){ structStus;//局......
  • python学习笔记6(基本数据类型2、数据类型之间的转换、eval()函数)
    (一)基本数据类型21、字符串的索引和切片索引,查找某个字符,包括正向和反向索引,正向从0开始,负向从-1开始s='hello'print(s[0])print(s[-5])切片,字符串中了串检索,注意下面的输出是he,也就是第二个参数是不包含参数,正向反向规则一样,n或m可以节省s='hello'print(s[0:2])2、字符串类型xn或......
  • 虚拟架构的转换
    虚拟软件的应用架构内置:https://json.schemastore.org/appsettings.json"Logging":{"LogLevel":{"Default":"Warning"}},"AllowedHosts":"*","SystemConfig":{"Demo":false,//是否是演示模式......
  • java基础知识点API之String详解--String基础看它就够了
    一:概述java中的String在java.lang包下,使用时可以直接使用不需要进行导包。字符串在日常使用中非常多,例如之前的变量定义。二:详细说明<1>JDK-帮助文档中对Strng类的介绍<2>字符串常量的创建,字符串常量在创建之后,它们的值不能被更改,但是可以被共享。publicstaticvoidmain(String[......
  • java 如何实现简单的知识图谱
    如何使用Java实现简单的知识图谱引言随着信息时代的快速发展,知识图谱成为了处理大数据和知识管理的重要工具。知识图谱是一种将实体、关系和属性组织起来的图形化表示方式,可以帮助我们更好地理解和利用知识。本文将介绍如何使用Java实现一个简单的知识图谱,并结合实际问题给出示例......
  • 在Python中,部署API接口通常涉及使用一个Web框架,将你的Python代码转换为可以通过HTTP请
    使用Gunicorn运行Flask应用相对简单。首先,确保已经安装了Gunicorn和Flask(如果还没有安装的话)。步骤:步骤1:安装Gunicornpipinstallgunicorn步骤2:准备你的Flask应用确保你的Flask应用(比如 app.py 文件)已经创建并且可以通过Flask的开发服务器运行。步骤3:使......
  • 打印一个二进制数的奇数位和偶数位
    #define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intbin_two(inta){ intcount=0; printf("奇数位为:"); for(inti=30;i>=0;i-=2)//32位右移30位就可以得到32位内所有奇数位二进制数 { printf("%d",(a>>i)&1); } printf("\n&q......
  • 打印一个二进制数的奇数位和偶数位
    #define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intbin_two(inta){ intcount=0; printf("奇数位为:"); for(inti=30;i>=0;i-=2)//32位右移30位就可以得到32位内所有奇数位二进制数 { printf("%d",(a>>i)&1); } printf("\n&q......
  • 利用函数比较两个二进制数里面有多少位不同
    #define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intdiffer_bit(inta,intb){ intcount=0; inttmp=a^b;//通过^后tmp里有多少个1就说明两个二进制数里有多少位不同 while(tmp) { tmp=tmp&(tmp-1); count++; } returncount;}intmain(){ in......
  • 初识C语言1(C语言的部分基础认知)(初识系列主要目的在于在脑海中初步建立对C语言的认知,建
    C语言是一门通用计算机编程语言,广泛应用于底层开发。 简述写C语言代码的过程       C语言规定:main函数是程序的入口,同时main函数有且只有一个。(一个工程之中)......