饿补基础_1 |进位制、R进制之间转换及十进制编码

目录

  • 数值数据的表示
    • 一.进位计数制理解
      • 1.你需要了解的概念
      • 2. 晦涩难懂的官方定义
      • 3 一看就会的例子
      • 4 值得收藏的进制对照表(二、八、十、十六进制)
      • 5 计算机为什么主要使用二进制
    • 二.不同数制之间的转换
      • 1. 为什么会出现进制转换
      • 2. 各数制转十进制
      • 3. 十进制转二进制
      • 4. 二进制与八进制、十六进制之间的转换
    • 三.十进制数的编码
      • 1.二—十进制码(BCD码)
      • 2.十进制字符串的表示方法
        • 2.1 字符串形式
        • 2.2 压缩的十进制数串形式

数值数据的表示

一.进位计数制理解

1.你需要了解的概念

所谓进位计数制即按进位制的方法进行计数。

数制的组成: 基数R和各数位的权W。
基数为R的数制称为R进制,特点逢R进一

基数R: 决定了各数位上允许出现的数码个数,比如十进制上允许出现10个数(0、1、2…9)。

权W: 表示该数位上的数码苏表示的单位数值的大小,比如十进制的个位数值大小为100,十位为101
所以权W是与数位的位置有关的一个常数,即不同数位有不同的权。

位权: 同一个数码位于不同的位置,其所代表的数值大小也不同。

最高有效位: 通常一个数最左边的数位的权最大,即最高有效位。

最低有效位: 通常一个数最右边的数位的权最小,即最低有效位。

2. 晦涩难懂的官方定义

饿补基础_1 |进位制、R进制之间转换及十进制编码_第1张图片

3 一看就会的例子

饿补基础_1 |进位制、R进制之间转换及十进制编码_第2张图片
计算机中常见的数制(允许使用的数字符号)有:
二进制(0~1)
八进制(0~7)
十进制(0~9)
十六进制(0~9及 A~F)。

4 值得收藏的进制对照表(二、八、十、十六进制)

饿补基础_1 |进位制、R进制之间转换及十进制编码_第3张图片

5 计算机为什么主要使用二进制

  • 相对更容易找到具有二进制状态的物理器件表示数据和实现存储。例如,脉冲的有无、电压的高低等。
  • 二值性使二进制数的存储具有抗干扰能力强、可靠性高等优点。
  • 二进制的运算规则简单,运算过程中的输入和输出状态较少,便于使用电子器件和线路加以实现。
  • 二进制的0和1与逻辑推理中的“真”和“假”相对应,为实现逻辑运算和逻辑判断提供了便利。

二.不同数制之间的转换

说明: 以下出现例子中括号外右下角以数制的基数2、10、8、16或后缀以大写或小写的“B(Binary)”、“D(Decimal)”、“O(Octal)”、“H(Hexadecimal)”代表二进制、十进制、八进制、十六进制。

1. 为什么会出现进制转换

由于人们习惯使用十进制,所以计算机中支持用户以十进制形式输入数据,在计算机内部将其转化为二进制数来存储和运算,最后再将处理结果以十进制形式输出给用户。

2. 各数制转十进制

给我死死的记住:计算的本质——加权求和!
饿补基础_1 |进位制、R进制之间转换及十进制编码_第4张图片

3. 十进制转二进制

十进制的整数部分和小数部分必须分别转换,得出结果再合并。

  • 整数转二进制: 除以2取余数,先得者为整数的最低位,再继续除以2取余数,直至商为0.
  • 小数转二进制: 乘以2取整数,先得者为小数的最高位。再继续乘以2取整数,直至积为0或小数满足精度要求(并不是所有十进制小数最后乘积一定为0,所以适当使用精度控制结束)。

一个例子你就懂:
将(114.35)10 转化为二进制(1110010.0101)2,精度高于10%(因为1/16<1/10=10%,即取4位小数即可)。
饿补基础_1 |进位制、R进制之间转换及十进制编码_第5张图片

4. 二进制与八进制、十六进制之间的转换

  • 二进制转八进制
    因为3位二进制数恰好组成1位八进制数,所以从小数点开始向两边每3位划分为一组,整数部分不足3位的,在前边补“0”,小数部分不足3位的在后边补“0”,然后写出各组的八进制数。
  • 二进制转十六进制
    同理4位二进制组成1位十六进制数,所以从小数点开始向两边每4位划分为一组,整数部分不足4位的,在前边补“0”,小数部分不足4位的在后边补“0”,然后写出各组的十六进制符号。
  • 八进制转二进制
    对每一位八进制写出它的3位二进制编码(注意:不能省略高位或低位的“0”,当整个过程转换完成时,才可以省略高位或低位的“0”)
  • 十六进制转二进制
    同八进制转二进制思路一样,对每一位十六进制写出它的4位二进制编码。

例1:将(11011.11001)2转化为八进制和十六进制
饿补基础_1 |进位制、R进制之间转换及十进制编码_第6张图片
例2:将(571.23)8和(A8.E9)16转化为二进制
饿补基础_1 |进位制、R进制之间转换及十进制编码_第7张图片

三.十进制数的编码

由来: 人们习惯使用十进制表示数据,而计算机内任何信息只能以二进制存储,如何使用二进制表示十进制?达到快速转换即像查表一样一一对应?

以下两种方法表示: BCD码和十进制数串的表示方法

1.二—十进制码(BCD码)

BCD(Binary Coded Decimal)码,即使用二进来编码十进制数0~9。

通常使用4位二进制编码来表示1位十进制,选16个4位二进制编码中的10个来表示数字0~9。不同选择构成不同的BCD码。

如下表:BCD码编码对应关系
饿补基础_1 |进位制、R进制之间转换及十进制编码_第8张图片
如下图为对BCD码的总结:
饿补基础_1 |进位制、R进制之间转换及十进制编码_第9张图片
额外补充:
计算器内部的运算器硬件实现BCD码运算比较复杂,**在某些情况下必须对二进制运算器的运算结果进行修正,**以便产生正确的十进制结果。(详细后期博客陆续更新)

2.十进制字符串的表示方法

2.1 字符串形式

一个字节存放一个十进制的数位或符号位,直接以ASC||码的形式存放。

例如:数字0~9
ASC||码为48~ 57

2.2 压缩的十进制数串形式

一个字节存放 两个十进制数位

优点: 相对字符串形式更节省空间

你可能感兴趣的:(笔记,java)