(补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式

文章目录

  • 前言
  • 一、进制
    • 1 逢几进一
    • 2 常见进制在java中的表示
    • 3 进制中的转换
      • (1)任意进制转十进制
      • (2)十进制转其他进制
  • 二、计算机中的存储
    • 1 计算机的存储规则(文本数据)
      • (1)ASCII码表
      • (2)编码规则的发展演化
    • 2 计算机的存储规则(图片数据)
      • (1)分辨率、像素
      • (2)黑白图与灰度图
      • (3)彩色图
    • 3 计算机的存储规则(音频数据)
  • 三、原码、反码和补码
    • 1 原码
    • 2 反码
    • 3 补码
    • 4 总结一下
    • 5 字节范围推广
    • 6 数据类型转换中的隐式转换和强制转换一些例子就可以用补码的知识来解释了
      • (1)同一个整数在 byte、short、int、long下面补码分别表示什么呢?
      • (2)隐式转换
      • (3)强制转换
  • 总结


前言

本文会介绍:

  • java中的各种进制的转换关系
  • 计算机中文本、图片、音频三种数据类似是怎么存在计算机中的
  • 普及图像、和音频的一些常识知识

计算机数据分为三种: 文本(Text)数据:数字,字母,特殊符号等等、(Image)图片数据、(Sound)声音数据。有且仅有这三种,其中视频是图片和音频数据的组合。

【注】:无论是文本、图片、还是音频计算机都是以二进制存储,即用一堆0,1数字来表示。这是怎么做到的,下面我们简单了解一下,其实这块属于计算机组成原理的知识。
先来了解一下进制吧。


一、进制

1 逢几进一

  • 十进制:逢十进一
  • 二进制:逢二进一
  • 八进制:逢八进一
  • 十六进制:逢十六进一

什么意思呢?以十进制逢十进一和二进制的逢二进一来说。
如下图所示:
在这里插入图片描述

2 常见进制在java中的表示

  • 二进制:由0和1组成,代码中以0b开头
  • 十进制:由0-9组成,java默认十进制,前面不加任何前缀
  • 八进制:由0-7组成,代码中以0开头
  • 十六进制:由0-9还有a-f组成,代码中以0x开头

十六进制里面a-f解释一下:

【0】 【1】 【2】 【3】 【4】 【5】 【6】 【7】 【8】 【9】 【a】 【b】 【c】 【d】 【e】 【f】
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

下面给出java代码例子:

public class HelloWord{
   
		public static void main(String[] args){
   
			System.out.println(17); // 十进制   17
			System.out.println(017); // 八进制  15
			System.out.println(0x123);  // 十六进制  291
			System.out.println(0b123);  // 语法错误
		}

}

【注】:代码中写要加前缀,但是用System.out.println()出来的都是转换成十进制打印出来的

3 进制中的转换

(1)任意进制转十进制

公式: 系数 * 基数的权次幂 相加

  • 系数: 就是每一位上的数
  • 基数:当前进制数
  • 权:从右往左,依次为 0 1 2 3 4…

计算过程如下图:
在这里插入图片描述
除了上述通用的转换方法,部分进制之间还存在一些快速转换技巧。

二进制转十进制:8421快速转换法
其实就是查表
在这里插入图片描述

(2)十进制转其他进制

除基取余法

不断的除以基数(几进制,基数就是几)得到余数,直到商为0,再将余数倒着拼起来即可。

在这里插入图片描述

二、计算机中的存储

1 计算机的存储规则(文本数据)

学了进制过后,相信文本数据中的数数字你已经知道怎么存的了
在这里插入图片描述

99直接转成二进制,那字母‘a’呢?— ASCII码表

(1)ASCII码表

在这里插入图片描述
在这里插入图片描述
问题又来了,字母可以用ASCII码表,但是汉字这个表里面没有啊,怎么办?继续在这张表上面加就是了,然后就不断发展出来了多种编码规则

(2)编码规则的发展演化

    1. GB2312编码:1981年5月1日发布的简体中文汉字编码国家标准。收录7445个图形字符,其中包括6763个汉字。
    1. BIG5编码:台湾地区繁体中文标准字符集,共收录13053个中文字,1984年实施。
    1. GBK编码:2000年3月17日发布,收录21003个汉字,包含国家标准GB13000-1中的全部中日韩汉字,和BIG5编码中的所有汉字。
    1. Unicode编码:国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换。

在这里插入图片描述

【注】:这个过程中还产生了一些其他的编码,如我们常用的utf-8编码等。
总结一下就是,数字—>二

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

澳门建筑插画:成都亚恒丰创教育科技有限公司

澳门建筑插画:绘就东方之珠的斑斓画卷 在浩瀚的中华大地上,澳门以其独特的地理位置和丰富的历史文化,如同一颗璀璨的明珠镶嵌在南国海疆。这座城市,不仅是东西方文化交融的典范,更是建筑艺术的宝库。当画笔轻触纸面&a…

装饰模式(大话设计模式)C/C++版本

装饰模式 需求分析: 1. 选择服饰 > 服饰类 2. 输出结果 对象是人 > 人类将Person类中一大堆服饰功能抽象出服饰类,然后通过Person类聚合服饰属性,通过Set行为来设置服饰属性,最后达到灵活打扮的效果 装饰模式 动态地给一个…

【Java--数据结构】栈:不仅仅是数据存储,它是编程的艺术

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 栈 栈的方法介绍 入栈push 出栈pop和 瞄一眼peek 判空isEmpty和判满isFull 模拟实现栈 push入栈 pop出栈和peek 测试 使用泛型实现栈 测试 使用链表实现栈&#xff08…

【leetcode】整数反转

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 示例 1: …

运动控制问题

第一类运动控制问题是指被控制对象的空间位置或轨迹运动发生改变的运动控制系统的控制问题。这类运动控制问题在理论上完全遵循牛顿力学定律和运动学原则。 1、运动控制问题 第1类运动控制的核心是研究被控对象的运动轨迹 、分析运动路径、运动速度、加速度与时间的关系,常用…

【香菇带你学Linux】Linux环境下gcc编译安装【建议收藏】

文章目录 0. 前言1. 安装前准备工作1.1 创建weihu用户1.2 安装依赖包1.2.1 安装 GMP1.2.2 安装MPFR1.2.3 安装MPC 2. gcc10.0.1版本安装3. 报错解决3. 1. wget下载报错 4. 参考文档 0. 前言 gcc(GNU Compiler Collection)是GNU项目的一部分,…

TensorBoard ,PIL 和 OpenCV 在深度学习中的应用

重要工具介绍 TensorBoard: 是一个TensorFlow提供的强大工具,用于可视化和理解深度学习模型的训练过程和结果。下面我将介绍TensorBoard的相关知识和使用方法。 TensorBoard 简介 TensorBoard是TensorFlow提供的一个可视化工具,用于&#x…

JVM:垃圾回收器

文章目录 一、介绍二、年轻代-Serial垃圾回收器三、老年代-SerialOld垃圾回收器四、年轻代-ParNew垃圾回收器五、老年代-CMS(Concurrent Mark Sweep)垃圾回收器六、年轻代-Parllel Scavenge垃圾回收器七、Parallel Old垃圾回收器八、G1垃圾回收器 一、介…

Python实战MySQL:数据库操作全流程详解

更多Python学习内容:ipengtao.com MySQL是一种广泛使用的关系型数据库管理系统,Python可以通过多种方式与MySQL进行交互。本文将详细介绍如何使用Python操作MySQL数据库,包括安装必要的库、连接数据库、执行基本的CRUD(创建、读取…

JAVA String类最全分析

一、介绍 StringSerializable实现它,String可以串行化,可以在网络上传输ComparableString对象可以相互比较CharSequenceObject String class Main{public static void main(String[] args) {//1.String 对象用于保存字符串,也就是一组字符…

Android ImageDecoder把瘦高/扁平大图相当于fitCenter模式decode成目标小尺寸Bitmap,Kotlin

Android ImageDecoder把瘦高/扁平大图相当于fitCenter模式decode成目标小尺寸Bitmap,Kotlin val sz Size(MainActivity.SIZE, MainActivity.SIZE)val src ImageDecoder.createSource(mContext?.contentResolver!!, uri)val bitmap ImageDecoder.decodeBitmap(sr…

MySQL更新和删除(DML)

DML-修改数据 UPDATE 表名 SET 字段1 值1,字段2值2,....[WHERE 条件] 例如 1.这个就是把employee表中的这个name字段里面并且id字段为1的名字改为itheima update employee set nameitheima where id 1; 2.这个就是把employee这个表中的name字段和…

SpringMVC源码分析

文章目录 概要启动阶段请求阶段 概要 以下是调试mvc源码过程中用到的demo以及配置文件 webapp/WEB-INF/web.xml <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi"http://…

熊海CMS漏洞练习平台的一次xss、sql注入、越权黑盒思路分析

简介 熊海CMS是由熊海开发的一款功能丰富的网站综合管理系统&#xff0c;广泛应用于个人博客、个人网站以及企业网站&#xff0c;本文章用于黑盒测试&#xff0c;如果需要「源码审计」后台回复【「CMS」】获取即可&#xff0c;精心准备了40多个cms源码漏洞平台&#xff0c;供宝…

记一次docker容器安装MySQL,navicat无法连接报错(10060错误)

今天在云服务器上使用docker部署mysql 8.0.11时&#xff0c;遇到了一个诡异的问题&#xff0c;在云服务器的docker容器内可以连接上mysql&#xff0c;然而在自己电脑上连接mysql时报错&#xff1a;Can‘t connect to MySQL server on localhost (10060) 下面是网上搜寻的几种可…

《SpringBoot 整合 Prometheus 采集自定义指标》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; 近期刚转战 CSDN&#xff0c;会严格把控文章质量&#xff0c;绝不滥竽充数&#xff0c;如需交流&#xff…

C语言 ——— const关键字

目录 const修饰变量 const修饰指针变量 const放在指针类型之前 const放在指针类型之后 小结 const修饰变量 当 const 修饰 int类型 的 变量a 后&#xff0c;此时的 变量a 就具有长属性&#xff0c;就不能被赋值为其他的值 将 变量a的地址 存储到 指针变量pa 中&#xff…

计算机网络——常见问题汇总

1. introduction 1.1 Explain what a communication protocol is and why its important. A communication protocol is a set of rules and conventions(公约) that govern(统治) how data is transmitted and received between devices(设备), systems, or entities in a ne…

1、BOREDHACKERBLOG:社交网络

靶机&#xff1a;https://www.vulnhub.com/entry/boredhackerblog-social-network,454/ 参考&#xff1a;Vulnhub靶机&#xff1a;BOREDHACKERBLOG: SOCIAL NETWORK_boredhackerblog系列-CSDN博客 需要使用virtualbox。 先去官网下载了最新版的vietualbox&#xff0c;以及把这…

使用 Unstructured.io 和 Elasticsearch 向量数据库搜索复杂文档

作者&#xff1a;来自 Elastic Amy Ghate, Rishikesh Radhakrishnan, Hemant Malik 使用非结构化和 Elasticsearch 向量数据库为 RAG 应用程序提取和搜索复杂的专有文档 在使信息可搜索之前解析文档是构建实际 RAG 应用程序的重要步骤。Unstructured.io 和 Elasticsearch 在此…