【Java|基础篇】计算机中数据的存储规则

简介: 本篇文章只是为了科普 计算机中数据的存储规则。计算机的数据大致分为三类:文本数据,图片和音频,注 视频是图片和音频的结合。

前言:

本篇文章只是为了科普 计算机中数据的存储规则


1.计算机中的数据


计算机的数据大致分为三类:文本数据,图片和音频

注:视频是图片和音频的结合

计算机中任意的数据都是以二进制的形式进行存储的


2.二进制的介绍


我们平时生活中使用的是十进制,一位可以表示的数据范围是0~9,逢十进一.二进制也是差不多,一位可以表示的数据范围是0和1,逢二进一


二进制的运算规则


先举个例子:

思考: 二进制下的101和十进制下的101 表示的结果一样吗? 答案肯定是不一样的对吧,那么二进制下的101是十进制下的几呢?

十进制下的101,其实就是101对吧,这个如果要用十进制要如何算呢?

看下图:

14.png

那么二进制的计算也是如此:

15.png

常见的进制


常见的进制有:二进制 十进制 八进制和十六进制

二进制:由0和1组成,代码中以0b开头

十进制:由0~9组成,代码中不加任何前缀

八进制:由0~7组成,代码中以0开头

十六进制:由0~9和a到f组成,代码中以0x开头

十六进制的a到f:

16.png

进制之间的转换也和上面的二进制转十进制的方法一样

有一点需要注意:十进制转其它进制时还不太一样

十进制转其它进制需要使用:除基取余法

不断除以基数(转成几进制,就除几)得到余数,直到商为0,在讲余数倒着拼回来即可


3.字符的存储


计算机中数据都是以二进制的方式进行存储的,那么字符是如何存储的呢?这就要用到ASCII码表了

如果想知道ASCII码表,可以看看➡ASCII码一览表,ASCII码对照表

每个字符都有属于自己的ASCII码值,这些值就是数字,就可以使用二进制进行存储


4.汉字的存储


因为ASCII是外国人搞出来的,当时并没有考虑到汉字

这就要说到字符集编码:

GB2312编码:1981年5月1日发布的简体中文汉字编码国家标准。收录7445个图形字符,其中包括6763个汉字。

BIG5编码:台湾地区繁体中文标准字符集,共收录13053个中文字,1984年实施。

GBK编码:2000年3月17日发布,收录21003个汉字,包含国家标准GB13000-1中的全部中日韩汉字,和BIG5编

码中的所有汉字。

Unicode编码:国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文

本信息转换。


5.图片的存储


图片的存储就要涉及到像素了,每个像素都有颜色,所以才构成了我们看到的图片

三原色:红绿蓝(也就是我们俗称的RGB) 这三种颜色互相搭配就组成了五彩缤纷的颜色

红绿蓝就三个颜色是有取值范围的:每个颜色的取值都在0~255之间 也可以用十六进制来表示,取值范围是0~FF


6.音频的存储


声音都是由波形图的,声音的波形图上的每一个点都有对应的数字


总结:


计算机中任意的数据都是以二进制的形式进行存储的

文本数据:

数字:二进制

字母:对应二进制的ASCII码值

汉字:查询字符集编码,然后转成二进制进行存储

图片:每个像素的RGB三原色进行存储

音频:对声波图进行采样再存储

相关文章
|
12天前
|
Java 程序员 容器
Java中的变量和常量:数据的‘小盒子’和‘铁盒子’有啥不一样?
在Java中,变量是一个可以随时改变的数据容器,类似于一个可以反复打开的小盒子。定义变量时需指定数据类型和名称。例如:`int age = 25;` 表示定义一个整数类型的变量 `age`,初始值为25。 常量则是不可改变的数据容器,类似于一个锁死的铁盒子,定义时使用 `final` 关键字。例如:`final int MAX_SPEED = 120;` 表示定义一个名为 `MAX_SPEED` 的常量,值为120,且不能修改。 变量和常量的主要区别在于变量的数据可以随时修改,而常量的数据一旦确定就不能改变。常量主要用于防止意外修改、提高代码可读性和便于维护。
|
1月前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
40 6
|
1月前
|
存储 Java API
深入剖析Java Map:不只是存储数据,更是设计艺术的体现!
【10月更文挑战第17天】在Java编程中,Map是一种重要的数据结构,用于存储键值对,并展现了设计艺术的精髓。本文深入剖析了Map的设计原理和使用技巧,包括基本概念、设计艺术(如哈希表与红黑树的空间时间权衡)、以及使用技巧(如选择合适的实现类、避免空指针异常等),帮助读者更好地理解和应用Map。
93 3
|
1月前
|
存储 Java
深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。
【10月更文挑战第16天】本文深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。HashSet基于哈希表实现,添加元素时根据哈希值分布,遍历时顺序不可预测;而TreeSet利用红黑树结构,按自然顺序或自定义顺序存储元素,确保遍历时有序输出。文章还提供了示例代码,帮助读者更好地理解这两种集合类型的使用场景和内部机制。
39 3
|
12天前
|
存储 缓存 安全
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见。本文介绍了使用 `File.createTempFile` 方法和自定义创建临时文件的两种方式,详细探讨了它们的使用场景和注意事项,包括数据缓存、文件上传下载和日志记录等。强调了清理临时文件、确保文件名唯一性和合理设置文件权限的重要性。
31 2
|
12天前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
23 2
|
17天前
|
存储 分布式计算 Java
存算分离与计算向数据移动:深度解析与Java实现
【11月更文挑战第10天】随着大数据时代的到来,数据量的激增给传统的数据处理架构带来了巨大的挑战。传统的“存算一体”架构,即计算资源与存储资源紧密耦合,在处理海量数据时逐渐显露出其局限性。为了应对这些挑战,存算分离(Disaggregated Storage and Compute Architecture)和计算向数据移动(Compute Moves to Data)两种架构应运而生,成为大数据处理领域的热门技术。
39 2
|
23天前
|
SQL Java OLAP
java实现“数据平滑升级”
java实现“数据平滑升级”
39 2
|
27天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
|
1月前
|
Java
Java Set以其“不重复”的特性,为我们提供了一个高效、简洁的处理唯一性约束数据的方式。
【10月更文挑战第16天】在Java编程中,Set接口确保集合中没有重复元素,每个元素都是独一无二的。HashSet基于哈希表实现,提供高效的添加、删除和查找操作;TreeSet则基于红黑树实现,不仅去重还能自动排序。通过这两个实现类,我们可以轻松处理需要唯一性约束的数据,提升代码质量和效率。
37 2