(补充):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】
0123456789101112131415

下面给出java代码例子:

public class HelloWord{public static void main(String[] args){System.out.println(17); // 十进制   17System.out.println(017); // 八进制  15System.out.println(0x123);  // 十六进制  291System.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.mzph.cn/diannao/45779.shtml

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

相关文章

服务器操作集合

服务器使用PC作为代理访问外网 1、PC上启动代理,比如nginx 下载nginx:http://nginx.org/en/download.html 修改配置文件,在conf下: http {include mime.types;default_type application/octet-stream;sendfile o…

罗技K380无线键盘及鼠标:智慧互联,一触即通

目录 1. 背景2. K380无线键盘连接电脑2.1 键盘准备工作2.2 电脑配置键盘的连接 3. 无线鼠标的连接3.1 鼠标准备工作3.2 电脑配置鼠标的连接 1. 背景 有一阵子经常使用 ipad,但是对于我这个习惯于键盘打字的人来说,慢慢在 ipad 上打字,实在是…

conda install问题记录

最近想用代码处理sar数据,解放双手。 看重了isce这个处理平台,在安装包的时候遇到了一些问题。 这一步持续了非常久,然后我就果断ctrlc了 后面再次进行尝试,出现一大串报错,不知道是不是依赖项的问题 后面看到说mam…

模块化(一)nodejs

模块化 一.模块化的基本概念1.1 什么是模块化1.2 模块化规范 二.Node.js 中的模块化2.1 Node.js 中模块的分类2.2 加载模块2.3 Node.js 中的模块作用域2.4 向外共享模块作用域中的成员 一.模块化的基本概念 1.1 什么是模块化 模块化 是指解决一个 复杂问题 时,自顶…

从Centos7升级到Rocky linux 9后,网卡连接显示‘Wired connection 1‘问题解决方法

问题描述 从Centos7升级到Rocky9后, 发现网卡eth0的IP不正确。通过nmcli查看网卡连接,找不到name为eth0的连接,只显示’Wired connection 1’ 查看/etc/NetworkManager/system-connections/,发现找不到网卡配置文件。 原因分析 centos7使…

华为OD机试 - 堆内存申请(Java 2024 D卷 100分)

华为OD机试 2024D卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(D卷C卷A卷B卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测…

Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制

章节内容 上节我们完成了: ZooKeeper 集群配置ZooKeeper 集群启动ZooKeeper 集群状况查看Follower 和 Leader 节点 背景介绍 这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。 之前已经在 VM 虚拟机上搭…

基于SpringBoot+Vue的数码论坛系统(带1w+文档)

基于SpringBootVue的数码论坛系统(带1w文档) 基于SpringBootVue的数码论坛系统(带1w文档) 数码论坛系统能够通过互联网得到广泛的、全面的宣传,让尽可能多的用户了解和熟知数码论坛系统的便捷高效,不仅为用户提供了服务,而且也推广了自己&…

【pytorch】手写数字识别

https://blog.csdn.net/qq_45588019/article/details/120935828 基本均参考该博客 《深度学习原理Pytorch实战》 初步处理 导包 import torch import numpy as np from matplotlib import pyplot as plt from torch.utils.data import DataLoader from torchvision import tr…

Cypress UI自动化之安装环境

注:macOS系统 一、git环境 略 二、node环境 1、安装nvm 前提:有装过Homebrew,参考adb使用方法文档 1、安装nvm:首先要保证之前没有安装过node,如果之前安装过,先 brew uninstall node brew install n…

计算云服务4

第四章 弹性伸缩服务 什么是弹性伸缩(AS) 弹性伸缩(Auto Scaling,AS)是根据用户的业务需求,通过策略自动调整其业务资源的服务。用户可以根据业务需求自行定义伸缩配置和伸缩策略,降低人为反复调整资源以应对业务变化和高峰压力的工作量&am…

C语言 | Leetcode C语言题解之第231题2的幂

题目&#xff1a; 题解&#xff1a; const int BIG 1 << 30;bool isPowerOfTwo(int n) {return n > 0 && BIG % n 0; }

为什么远程办公不被公司普遍接受?

为什么远程办公不被公司普遍接受? 如果说传统企业不接受远程公办,那么为什么互联网企业也不接受远程办公呢? VPN 虚拟专用网络(Virtual Private Network) VPN 是远程办公的基石,没有VPN远程办公处处受限。什么是VPN呢? 它能实现跨地域,不受地域限制地把办公室网络和个…

暑期备考美国数学竞赛AMC8和AMC10:吃透1850道真题和知识点

距离接下来的AMC8、AMC10美国数学竞赛还有几个月的时间&#xff0c;实践证明&#xff0c;做真题&#xff0c;吃透真题和背后的知识点是备考AMC8、AMC10有效的方法之一。 通过做真题&#xff0c;可以帮助孩子找到真实竞赛的感觉&#xff0c;而且更加贴近比赛的内容&#xff0c;…

全面升级的对象创建——抽象工厂模式(Python实现和JAVA实现)

1. 引言 大家好&#xff01;在之前的文章中&#xff0c;我们探讨了简单工厂和工厂方法模式&#xff1a; 轻松创建对象——简单工厂模式&#xff08;Python实现&#xff09; 轻松创建对象——简单工厂模式&#xff08;Java实现&#xff09; 灵活多变的对象创建——工厂方法模式…

12-《向日葵》

向日葵 向日葵&#xff08;拉丁文&#xff1a;Helianthus annuusL.&#xff09;&#xff0c;为木兰纲、菊目、菊科、向日葵属的一年生草本植物。高1&#xff5e;3.5米。茎直立&#xff0c;圆形多棱角&#xff0c;质硬被白色粗硬毛。广卵形的叶片通常互生&#xff0c;先端锐突或…

PyQt 模拟实现QSignalMapper 实现多个按钮点击监控

QSignalMapper 类用来接受多个信号&#xff0c;将信号汇总后再发射一个新信号。 用处主要是使多个执行类似功能的槽函数化简为一个&#xff1b; QSignalMapper 类在 PyQt 中已经被废弃&#xff0c;并且在较新版本的 PyQt 中已经不存在这个类。 在 PyQt 中&#xff0c;我们可…

传输层协议之UDP

1、端口号 我们在应用层创建的套接字&#xff0c;是需要通过bind()接口绑定我们的IP地址与端口号的&#xff0c;这是因为数据从传输层向上交付到应用层时&#xff0c;需要用端口号来查找特定的服务进程。一般在网络通信时&#xff0c;用IP地址标识一台主机&#xff0c;用端口号…

在Linux上导出NFS共享---网络文件系统

目录 一、NFS介绍 二、NFS 所需要的服务 三、搭建NFS服务器共享文件到客户端 在虚拟机129上配置&#xff1a; 在虚拟机135上配置 测试 四、autofs自动挂载 1、安装软件启动 2、编写 /etc/auto.master,在里面添加内容如下 3、编写 /etc/auto.nfs&#xff0c;其内容如下 …

Cisco 命令速查表(非常详细)零基础入门到精通,收藏这一篇就够了

Cisco IOS&#xff08;Internetwork Operating System&#xff09;是 Cisco 系统公司开发的专有操作系统&#xff0c;用于其路由器和交换机。它提供了一个稳健的、可扩展的、以命令行接口&#xff08;CLI&#xff09;为基础的网络操作环境。通过掌握 Cisco IOS 命令&#xff0c…