【蓝桥云课】进制

news2025/4/4 17:07:36

对于任意数制 R R R的数 n n n,都可以表达为 n = ∑ i = 0 k a i R i = a 0 R 0 + a 1 R 1 + a 2 R 2 + . . . + a k R k n=\sum_{i=0}^{k}a_{i}R^{i}= a_{0}R^{0}+a_{1}R^{1}+a_{2}R^{2}+...+a_{k}R^{k} n=i=0kaiRi=a0R0+a1R1+a2R2+...+akRk

一、十进制转 R R R进制

方法:十进制数除 R R R取余,余数倒着写
例:
66(D)→1000 010(B)计算过程:
①66/2=33,余数为0
②33/2=16,余数为1
③16/2=8,余数为0
④8/2=4,余数为0
⑤4/2=2,余数为0
⑥2/2=1,余数为0
⑦1/2=0,余数为1

66(D)→42(H)计算过程:
①66/16=4,余数为2
②4/16=0,余数为4

二、十六进制转二进制

方法:十六进制每一位写成四位的二进制数
例:42(H)→0100 0010(B)

三、八进制转二进制

方法:八进制每一位写成三位的二进制数
例:456(O)→100 101 110(B)

四、二进制转十进制

方法:二进制每一位加权求和
例:100 0010(B)→66(D)
计算过程: 1 × 2 6 + 0 × 2 5 + 0 × 2 4 + 0 × 2 3 + 0 × 2 2 + 1 × 2 1 + 0 × 2 0 = 66 1×2^{6}+0×2^{5}+0×2^{4}+0×2^{3}+0×2^{2}+1×2^{1}+0×2^{0}=66 1×26+0×25+0×24+0×23+0×22+1×21+0×20=66

五、Java自带的进制处理

String s = Integer.toString(255, 16);//10进制数转0~35进制,结果为字符串
System.out.println("s="+s);

System.out.println(Integer.toString(666, 36));//666(D)转换为36进制

int a = Integer.parseInt(s, 16);//把字符串当做多少进制,结果转换为10进制
System.out.println("a="+a);

BigInteger m = new BigInteger(s,16);//把16进制的字符串封装为大数对象
System.out.println("big integer m="+m);

六、相关例题

1.题目介绍:
小赵对进制特别感兴趣,不必研究2进制, 3进制, 4进制, 5进制… ,突然有一次,他发现了一个特殊的数2992,这个数,它的十进制数表示,其四位数字之和为2+9+9+2=22,它的十六进制数BB0,其四位数字之和也为22,同时它的十二进制数表示1894,其四位数字之和也为22,啊哈,真是巧啊。之后他就去翻书,发现这种数叫sky数。但是要判|断这样的数还是有点麻烦啊,那么现在请你帮忙来判断任何一个十进制的四位数,是不是Sky数吧。

输入
输入含有些小10000000 整数,如果为0,则输入结束。

输出

若为Sky数,则输出“#n is a Sky Number.",否则输出“#n is not a Sky Number."每个结果占一行。注意:#n表示所读入的n值。

样例输入

1
2992
1234
0

样例输出

1 is a Sky Number.
2992 is a Sky Number.
1234 is not a Sky Number.
0 is a Sky Number.

思路分析:
sky数的十进制、十六进制、十二进制的数位和都相等

获得数n的不同数制R的数位和算法:

int getswh(int n, int R){
	int sum = 0;//存储R进制下的数位和
	while(n>0){
		sum = sum + n%R;
		n = n/R;
	}
	return sum;
}

程序代码:

import java.util.Scanner;

public class Test {

	public static void main(String[] args) {
		int a = 0;
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()) {
			a = sc.nextInt();
			if(getRsum(a, 10)==getRsum(a, 16) && getRsum(a, 10)==getRsum(a, 12))
				System.out.println(a + " is a Sky Number.");
			else
				System.out.println(a + " is not a Sky Number.");
		}
	}
	
	public static int getRsum(int n, int R){
		int sum = 0;//存储R进制下的数位和
		while(n > 0){
			sum = sum + n%R;
			n = n/R;
		}
		return sum;
	}
}

2.题目介绍:
求集合的所有子集。子集的个数为 2 k 2^{k} 2k,k表示集合的元素个数。
思路分析:
在这里插入图片描述

程序代码:

public class Test {

	public static void main(String[] args) {
		int[] a = {1, 2, 3, 4};
		for(int i=0;i<=15;i++) {
			System.out.print("{");
			int n = i;//存储当前要去转换成二进制的i
			int index = 0;//当前是第几次去除以2
			while(n>0) {
				if(n%2==1) {
					if(n>2)
						System.out.print(a[index]+" ");
					else
						System.out.print(a[index]);
				}
				index++;
				n = n/2;//不断缩小为原来的1/2
			}
			System.out.println("}");
		}
	}
}

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

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

相关文章

kaggle竞赛 | 计算机视觉 | 数字图像基础操作

目录cv2基本操作图片哈希图像数据扩展无监督数据扩展方法监督式数据扩展方法cv2基本操作 import numpy as np import matplotlib.pyplot as plt import cv2img cv2.imread(cat.jpeg) plt.imshow(img)img cv2.imread(cat.jpeg) img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) pl…

JUC并发编程(2.Java线程)

1.线程运行原理 栈与栈帧 Java Virtual Machine Stacks &#xff08;Java 虚拟机栈&#xff09; 我们都知道 JVM 中由堆、栈、方法区所组成&#xff0c;其中栈内存是给谁用的呢&#xff1f;栈内存是给线程用&#xff0c;每个线程启动后&#xff0c;虚拟机就会为其分配一块栈内…

cmake 05 使用库

本文目标 使用自己写的动态库使用第三方库更新 cm 使用自己的动态库 写一个简单的库 目录结构 F:\2023\code\cmake\calc>tree /f 卷 dox 的文件夹 PATH 列表 卷序列号为 34D2-6BE8 F:. │ CMakeLists.txt │ ├─include │ └─calc │ calc.h │ └─srcc…

2022除夕卖水果

急促的呼吸&#xff0c;急促的爱&#xff0c;急促的吆喝声 来吧 朋友 伸出你的手 还有十分钟&#xff0c;拆拆盒子收摊中 管尝管饱&#xff0c;礼盒散装可打包 红橙黄绿青蓝紫 苹果樱桃小番茄 柠檬枳柑桔橙柚 香蕉龙眼与柠檬 蜜瓜西瓜猕猴桃 提子樱桃火龙果 葡萄甘蔗车厘子 柿子…

ES常用知识点整理第一部分

ES常用知识点整理第一部分引言APICrud APIBulk API批量读取批量查询ES服务器常见错误返回倒排索引分词器中文分词器Search APIURI SearchQuery DSL查询表达式短语搜索Query String 和 Simple Query Stringmapping映射动态映射手动映射多字段特性自定义分词Index TemplateDynami…

【Ubuntu】Nacos 2.1 单机安装

目录Nacos 2.1 单机安装1. 从GitHub下载2.1.0的压缩包2. 解压与配置3. 数据库配置4. 单机启动nacos遇到的一些错误ErrMsg:jmenv.tbsite.netlibstdc.so.6: cannot open shared object file: No such file or directoryCaused by: java.lang.IllegalStateException: No DataSourc…

3DCAD图纸转2D(DXF)图纸通用解决方案文稿

3DCAD图纸转2D(DXF)图纸通用解决方案文稿 本文地址&#xff1a;https://gitee.com/dvaloveu/lovedva/issues/I6B5YC 视频演示(1.25倍速&原速)&#xff1a;Acfun Bilibili 脚本地址&#xff1a;https://gitee.com/dvaloveu/ug-automation/blob/master/ug2caxa/hellowolrd.p…

第二章物理层-第五节:信道的极限容量

文章目录一&#xff1a;相关概念&#xff08;1&#xff09;失真&#xff08;2&#xff09;信道带宽W&#xff08;3&#xff09;波特率&#xff08;Baud&#xff09;二&#xff1a;奈奎斯特定理&#xff08;奈氏准则&#xff09;三&#xff1a;香农定理本节对应视频 【计算机网络…

sql注入绕过(持续更新)

判断存在注入 ab|| 查询表名 select{x table_name}from information_schema.tables where table_schemadatabase# () SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的资料库中不完全一样&#xff1a; MySQL: SUBSTR( ), SUBSTRING(…

Coolify系列01- 从0到1超详细手把手教你上手Heroku 和 Netlify 的开源替代方案

什么是Coolify 一款超强大的开源自托管 Heroku / Netlify 替代方案coolLabs是开源、自托管和以隐私为中心的应用程序和服务的统称 为什么使用Coolify 只需单击几下即可托管你的应用、数据库或其他开源服务&#xff0c;等。它是 Heroku 和 Netlify 的一个替代方案。通过 Cool…

springbootWeb常用注解使用

springbootWeb常用注解使用PathVariable 路径变量注解RequestHeader 请求标头注解RequestParam 请求域注解RequestBody 请求体注解ModelAttribute使用1,将其置于方法上&#xff1a;使用2&#xff0c;将其置于方法参数上&#xff1a;CookieValuePathVariable 路径变量注解 可以…

3.4动态规划--最大字段和

要好好学习这个难受难受超级难受的动态规划了&#xff0c;千万不要再沉迷在看剧和玩耍里面了。必须承认最近没有好好学习。 写在前面 最大字段和书上介绍了三种解法&#xff1a;暴力、递归分治、动态规划 递归分治&#xff0c;一分为二&#xff0c;合并的时候有三种情况&…

java容器轻松理解 collection collections(异同篇)

(1)collectionset &#xff08;只能迭代&#xff0c;不可以按下标取值&#xff09;hashset、Treesetlist&#xff08;可以迭代&#xff0c;也可以按下标取值&#xff09;ArrayList、LinkedList、Vector特点&#xff1a;ArrayList:方便随机访问&#xff0c;由数组实现的。所以中…

十大经典排序算法(动态演示+代码)-选择排序与插入排序

选择排序 一、什么是选择排序&#xff1f; 选择排序&#xff08;Selection sort&#xff09;是一种简单直观的排序算法。它的工作原理是&#xff1a;第一次从待排序的中数据元素选出最小&#xff08;或最大&#xff09;的一个元素&#xff0c;存放在序列的起始位置&#xff0c…

行为型模式-策略模式

1.概述 先看下面的图片&#xff0c;我们去旅游选择出行模式有很多种&#xff0c;可以骑自行车、可以坐汽车、可以坐火车、可以坐飞机。 作为一个程序猿&#xff0c;开发需要选择一款开发工具&#xff0c;当然可以进行代码开发的工具有很多&#xff0c;可以选择Idea进行开发&a…

04_iic子系统

总结 iic_client和iic_driver 加入iic总线的思想和paltform总线的玩法一样 把iic设备和驱动注册到iic总线中 构造出字符设备驱动和设备节点供app进行操作 但是iic硬件设备是挂在iic控制器下面的 所以iic控制器也会有自己的驱动和设备树节点 厂家一般都会帮做好 我们写的iic_dr…

离散系统的数字PID控制仿真-2

设计离散PID控制器&#xff0c;各信号的跟踪结果如图所示&#xff0c;其中S代表输入指令信号的类型。通过取余指令 mod实现三角波和锯齿波。当S1时为三角波&#xff0c;S2时为锯齿波&#xff0c;S3时为随机信号。在仿真过程中&#xff0c;如果 D1&#xff0c;则通过 pause命令实…

Prometheus学习整理-Prometheus-operator

Prometheus中的promQL语句: Prometheus提供的一种promQL语法,用来处理接口数据,然后方便用户对数据进行处理加工,它是Prometheus专门提供的一个函数表达式语言,可以实时的查询和聚合时间序列的数据,通过HTTPApi的方式提供给外部使用,PromQL主要分为下面的几种类型数据: 这里面的…

【老卫搞机】136期:华为开发者联盟社区2022年度战码先锋2期开源贡献之星

首先祝大家兔年大吉&#xff0c;身体安康&#xff0c;钱兔似锦&#xff01;接上次的“2022年牛人之星”&#xff08; https://developer.huawei.com/consumer/cn/forum/topic/0203109930647268095&#xff09;&#xff0c;今天咱们来开箱另外一件特殊的奖品&#xff0c;来自华为…

MySQL内外连接

文章目录MySQL内外连接内连接外连接左外连接右外连接简单案例MySQL内外连接 表的连接分为内连接和外连接。 内连接 内连接 内连接的SQL如下&#xff1a; SELECT ... FROM t1 INNER JOIN t2 ON 连接条件 [INNER JOIN t3 ON 连接条件] ... AND 其他条件;说明一下&#xff1a; …