java开发入门学习三-二进制与其他进制
常见的进制
常用的进制有二进制,八进制,十进制,十六进制。而我们最熟悉的是十进制,他们分别是怎么表达的呢?
定义不同的进制,写法不同
- 二进制(Binary):
- 使用前缀
0b或0B。 - 例如:
int binaryNumber = 0b1010;表示二进制的1010,等价于十进制的10。
- 使用前缀
- 十进制(Decimal):
- 十进制数是Java中的默认数制,因此不需要前缀。
- 例如:
int decimalNumber = 10;表示十进制的10。
- 八进制(Octal):
- 使用前缀
0。 - 注意:这里只使用一个
0作为前缀,与十六进制和二进制不同。 - 例如:
int octalNumber = 012;表示八进制的12,等价于十进制的10。
- 使用前缀
- 十六进制(Hexadecimal):
- 使用前缀
0x或0X。 - 例如:
int hexNumber = 0xA;表示十六进制的A,等价于十进制的10。
- 使用前缀
public class Main {public static void main(String[] args) {// 代码中定义的进制,无论如何在输出都是以十进制的方式输出// 二进制int binaryNumber = 0b1010;System.out.println("二进制 0b1010 等于十进制 " + binaryNumber);// 十进制int decimalNumber = 10;System.out.println("十进制 " + decimalNumber + " 等于十进制 " + decimalNumber); // 显然这里输出的是相同的数// 八进制int octalNumber = 012;System.out.println("八进制 012 等于十进制 " + octalNumber);// 十六进制int hexNumber = 0xA;System.out.println("十六进制 0xA 等于十进制 " + hexNumber);}
}
计算机底层存储
计算机存储数据,在底层是以二进制进行存储。他们都是以数据的补码进行存储,且最高位是符号位
- 正数: 最高位是0
- 负数:最高位是1
规定:
- 正数的补码,反码与原码是一样的,称为三码合一
- 负数的补码和反码,原码不一样
- 负数的原码: 十进制转二进制,且最高位为1
- 负数的反码:在原码的基础上,最高位不变,其余取反(0->1, 1->0)
- 负数的补码: 反码 + 1
有了以上规则,让我们来看几个例子;
byte b1 = 2;
byte b2 = -2;
这两个十进制在计算机是怎么存储的呢?
对于:byte存储为1个字节,8个bit,
b1 正数最高位为0;2转为二进制:10;原码 = 反码 = 补码; 因此计算机存储2 就是按照以下存储

b2 为负数,最高位是1;

进制之间的转换
二进制转10进制
二进制转10进制,除开最高位为符号位,其他一次为 位数 * 2的n次方

十进制转二进制
做除法在取余数取反

其他进制之间的转换
八进制转二进制与二转十
将数字拆分为单个数字,1个数字代表2进制的3位数;

十六转二和二转十六
将数字拆分为单个数字,1个数字代表2进制的4位数字,同上就不做案例了
相关文章:
java开发入门学习三-二进制与其他进制
常见的进制 常用的进制有二进制,八进制,十进制,十六进制。而我们最熟悉的是十进制,他们分别是怎么表达的呢? 定义不同的进制,写法不同 二进制(Binary): 使用前缀 0b 或…...
C/S软件授权注册系统(Winform+WebApi+.NET8+EFCore版)
适用软件:C/S系统、Winform桌面应用软件。 运行平台:Windows .NETCore,.NET8 开发工具:Visual Studio 2022,C#语言 数据库:Microsoft SQLServer 2012,Oracle 21c,MySQL8…...
Linux —— 管理进程
一、查看进程 运行态(Running) 定义:处于运行态的进程正在 CPU 上执行指令。在单 CPU 系统中,同一时刻只有一个进程处于运行态;在多 CPU 或多核系统中,可能有多个进程同时处于运行态。示例: 当…...
Diffusino Policy学习note
Diffusion Policy—基于扩散模型的机器人动作生成策略 - 知乎 建议看看,感觉普通实验室复现不了这种工作。复现了也没有太大扩展的意义。 Diffusion Policy 是监督学习吗 Diffusion Policy 通常被视为一种基于监督学习的方法,但它的实际训练过程可能结…...
【Python】*args和**kwargs
【Python】*args和**kwargs 一、*args: 接收不定数量的位置参数示例1:简单的加法计算器示例2:转发参数给另一个函数 二、**kwargs: 接收不定数量的关键字参数示例3:创建用户配置文件示例4:合并多个字典 三、组合使用*args和**kwar…...
使用正则表达式提取PDF文件页数的实现方案
文章目录 背景介绍实现原理代码实现1. 基础函数结构2. 页数提取逻辑3. 使用示例 正则表达式解析优点与局限性优点局限性 错误处理建议性能优化建议最佳实践建议总结参考资源 背景介绍 在Web应用开发中,我们经常需要获取上传PDF文件的页数信息。虽然可以使用pdf.js等第三方库,但…...
Android实现RecyclerView边缘渐变效果
Android实现RecyclerView边缘渐变效果 1.前言: 是指在RecyclerView中实现淡入淡出效果的边缘效果。通过这种效果,可以使RecyclerView的边缘在滚动时逐渐淡出或淡入,以提升用户体验。 2.Recyclerview属性: 2.1、requiresFading…...
springboot443旅游管理系统(论文+源码)_kaic
摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统旅游管理系统信息管理难度大,容错率低&#…...
利用git上传项目到GitHub
GitHub是基于git实现的代码托管。git是目前最好用的版本控制系统了,非常受欢迎,比之svn更好。 GitHub可以免费使用,并且快速稳定。 利用GitHub,你可以将项目存档,与其他人分享交流,并让其他开发者帮助你一…...
Rust之抽空学习系列(四)—— 编程通用概念(下)
Rust之抽空学习系列(四)—— 编程通用概念(下) 1、函数 函数用来对功能逻辑进行封装,能够增强复用、提高代码的可读 以下是函数的主要组成部分: 名称参数返回类型函数体 1.1、函数名称 在Rust中&…...
K-Means 聚类:数据挖掘的瑞士军刀
引言 在数据科学领域,聚类算法是一种非常重要的无监督学习方法,它能够帮助我们发现数据中的自然分组或模式。其中,K-Means 聚类算法因其简单高效而成为最常用的聚类算法之一。无论是市场细分、社交网络分析,还是图像分割等领域&a…...
项目练习:若依-前端项目的目录结构介绍
文章目录 一、目录截图二、目录讲解 一、目录截图 二、目录讲解 1、首先,我们可以看到,这个VUE项目,只有一个App.vue,所以,它是一个单页面系统。 这个App.vue是根组件,root组件。 2、public目录 在Vue 3.…...
知网研学 | 知网文献(CAJ+PDF)批量下载
知网文献(CAJPDF)批量下载 一、知网研学安装二、插件及脚本安装三、CAJ批量下载四、脚本下载及PDF批量下载浏览器取消拦截窗口 一、知网研学安装 批量下载知网文件,格式为es6文件,需使用知网研学软件打开,故需先安装该…...
设计模式期末复习
一、设计模式的概念以及分类 二、设计模式的主题和意图 三、面向对象程序设计原则,记住名字,还要理解它的使用场景以及如何用? 四、松耦合、紧耦合、强关联、弱关联、静态复用、动态复用的概念,还有静态委派,动态委…...
CentOS7源码编译安装nginx+php+mysql
1.安装nginx 安装依赖 yum -y install gcc gcc-c wget automake autoconf libtool libxml2-devel libxslt-devel perl-devel perl-ExtUtils-Embed pcre-devel openssl openssl-devel 创建一个不能登录的nginx运行用户 groupadd www-data useradd -s /sbin/nologin -g www-d…...
linux CentOS系统上卸载docker
一、停止Docker服务 首先,需要停止Docker服务。使用systemctl命令来停止Docker服务: bash复制代码sudo systemctl stop docker二、卸载Docker软件包 接下来,使用CentOS的包管理器yum来卸载Docker软件包。根据安装的Docker版本和组件&#…...
css中相对定位的应用场景
元素位置微调 文本与图标组合微调:在网页设计中,经常会有文本和图标的组合,比如一个带有搜索图标的搜索框。可以使用相对定位来微调图标在搜索框内的位置。例如,有以下HTML结构: <input type"text" class…...
Android 获取屏幕物理尺寸
注:编译 sdk 需要使用 30 因为引入了 WindowMetrics、uild.VERSION_CODES.R 新 sdk 才存在的类和属性 某些场景处理 view ,对 view 显示的位置要求比较精确,通常我们使用context.getResources().getDisplayMetrics().widthPixels 获取到的宽、…...
C缺陷与陷阱 — 8 编译与链接
目录 1 程序的编译过程 2 动态链接的优缺点 2.1 动态链接的优点 2.2 动态链接的缺点 2.3 只使用动态链接 3 函数库链接的5个特殊秘密 4 警惕Interpositioning 5 产生链接器报告文件 1 程序的编译过程 程序的编译过程是将源代码转换成计算机可以执行的机器代码的过程。…...
知识分享第三十天-力扣343.(整数拆分)
343 整数拆分 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例 1: 输入: 2 输出: 1 解释: 2 1 1, 1 1 1。 示例 2: 输入: 10 输出: 36 解释: 10 3 3 4, 3 3 4 36。 说明: 你可…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...
零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...
海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》
近日,嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》,海云安高敏捷信创白盒(SCAP)成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天,网络安全已成为企业生存与发展的核心基石,为了解…...
SQL注入篇-sqlmap的配置和使用
在之前的皮卡丘靶场第五期SQL注入的内容中我们谈到了sqlmap,但是由于很多朋友看不了解命令行格式,所以是纯手动获取数据库信息的 接下来我们就用sqlmap来进行皮卡丘靶场的sql注入学习,链接:https://wwhc.lanzoue.com/ifJY32ybh6vc…...
算法250609 高精度
加法 #include<stdio.h> #include<iostream> #include<string.h> #include<math.h> #include<algorithm> using namespace std; char input1[205]; char input2[205]; int main(){while(scanf("%s%s",input1,input2)!EOF){int a[205]…...
