软考中级 软件设计师 第一章 第一节 数据的表示

server/2025/1/11 19:06:40/

目录

 1、 进制转换

1.1、基础转换

1.2、二进制与八进制与十六进制

1.2.1、二进制与八进制

1.2.2、二进制与十六进制

2、码制

2.1、原码/反码/补码/移码

2.2、数值范围

3、浮点数

3.1、浮点数的表示

3.2、特点

3.3、对阶

4、运算

4.1、关系运算符

4.2、逻辑运算符

4.2.1、计算介绍

4.2.2、短路原则


1、 进制转换

1.1、基础转换

数据的计算分为2进制,10进制和16进制。

表格中的符号表示当前的数值的进制。

表格中的数码表示当前进制所能具有的符号,其中16进制最特殊,A代表10,B代表11,C代表12,D代表13,E代表14,F代表15.

表格中的基数表示计算时的进位标准。

表格中的位权表示计算时每一位的权重,即

10010101(B) = 2^{7}+2^{4}+2^{2}+2^{0} = 149(D)

需要注意的是,位是从右开始向左计算,且起始为0。

若是小数点后,则是从左向右计算,且起始为-1。

进制数码基数位权符号
10进制0~91010^{K}D
2进制0,122^{K}B
16进制0~9,A,B,C,D,E,F1616^{K}

H

若是从10进制向其他进制转换,则需要进行除基取余法,即用10进制数值除以其他进制的基数,记录余数,然后继续用得到的结果重复此过程,直至结果为0,然后逆序取得余数,即为结果

149(D)转化为二进制是多少?

149 ÷ 2 = 74 余 1

  74 ÷ 2 = 37 余 0

  37 ÷ 2 = 18 余 1

    18 ÷ 2 = 9 余 0

      9 ÷ 2 = 4 余 1

      4 ÷ 2 = 2 余 0

      2 ÷ 2 = 1 余 0

      1 ÷ 2 = 0 余 1

从下至上,依次取得余数,结果即为10010101(B)

1.2、二进制与八进制与十六进制

1.2.1、二进制与八进制

二进制与八进制之间的关系很特殊,二进制的第三位,即2^{3}恰好为8,即可以看做,每三个二进制位,都可以直接转化为一个八进制位(其符号为O)。

于是,将一个二级制数每三位做一个分割,如果最高位不足三个,则可以直接补0,因为高位的0不影响二进制数的数值本身,这样,我们可以直接得到对应的八进制数。

10010101(B)=10,010,101=010,010,101=225(O)

1.2.2、二进制与十六进制

与上一个小节的内容相似,二进制的第四位,即2^{4}恰好为16,即可以看做,每四个二进制位,都可以直接转化为一个十六进制位。

于是,将一个二级制数每四位做一个分割,如果最高位不足四个,则可以直接补0,因为高位的0不影响二进制数的数值本身,这样,我们可以直接得到对应的十六进制数。

10010101(B)=1001,0101=95(H)

2、码制

2.1、原码/反码/补码/移码

  1. 原码:原码即为有符号二级制数的最初始数值,最高位可以用来表示有无符号,即是正数还是负数,通常来说,正数为0,负数为1
  2. 反码:正数的反码与原码相同,负数的反码是原码绝对值的按位取反(符号位不变
  3. 补码:正数的补码与原码相同,负数的补码是反码加1(补码是有符号二进制数计算的正确方式,即做二进制加减法时,按照补码进行计算
  4. 移码:补码的符号位按位取反(只需了解其概念本身,是浮点数计算方式,其余不做了解即可)
1的表示方式-1的表示方式1-1的表示方式
原码000000011000000110000010
反码000000011111111011111111
补码000000011111111100000000
移码100000010111111110000000

2.2、数值范围

  1. 原码的定点整数:当n为8时,范围为-127~127,即11111111~01111111,因为有+0,和-0,所以负数范围和正数范围一致
  2. 原码的定点小数:当n为8时,范围为-0.1111111~0.1111111
  3. 补码的定点整数:当n为8时,范围为-128~127,其中-128的补码10000000是人为规定的,所以范围为10000000~01111111,-0被当成-128
  4. 补码的定点小数:当n为8时,范围为-1~0.1111111,其中-1的补码10000000是人为规定
码制定点整数定点小数数码个数
原码-(2^{n-1} - 1)/+(2^{n-1} - 1)-(1-2^{-(n-1)})/+(1-2^{-(n-1)} )2^{n}-1
反码-(2^{n-1} - 1)/+(2^{n-1} - 1)-(1-2^{-(n-1)})/+(1-2^{-(n-1)} )2^{n}-1
补码-2^{n-1}/+(2^{n-1} - 1)-1/+(1-2^{-(n-1)} )2^{n}
移码-2^{n-1}/+(2^{n-1} - 1)-1/+(1-2^{-(n-1)} )2^{n}

3、浮点数

3.1、浮点数的表示

浮点数,即小数点可以浮动的数,通常使N=A*B^{C}的方式来表示

A为尾数,以定点小数表示

B为基数

C为指数,以定点整数表示,又称阶码

3.2、特点

  1. 一般尾数用补码,阶码用移码(在IEEE754标准中,尾数可以用原码)
  2. 阶码的位数决定数的表示范围,位数越多范围越大
  3. 尾数的位数决定数的精度范围,位数越多精度越高
  4. 数符:尾数的符号位
  5. 阶符:阶码的符号位

3.3、对阶

对阶,即为两个浮点数的计算,通常而言,浮点数的阶码并不一致,如要计算,需要对其,即为对阶。对阶时,小的阶码要向大的转换,这样才能维持尾数的定点小数状态。

  1. 对阶时,小数向大数看齐
  2. 对阶通过较小数的尾数右移实现的

比如1.36*10^{5}1.36*10^{8}计算,需要将1.36*10^{5}转化为0.00136*10^{8},然后与1.36*10^{8}计算得到1.36136*10^{8}

4、运算

4.1、关系运算符

  1. 关系运算符优先级低于算术运算符
  2. 赋值运算符优先级低于关系运算符
<小于优先级高
<=小于等于
>大于
>=大于等于
==优先级低
!=不等

4.2、逻辑运算符

4.2.1、计算介绍

逻辑变量之间的运算即为逻辑运算,二进制的1代表真,0代表假

  1. 优先级排序为:非(!),与(&&),或(||)
  2. 逻辑运算符中的与(&&),或(||)低于关系运算符
  3. 最终的优先级为:非(!),算数运算符,关系运算符,与(&&),或(||),赋值运算符
||,+两个逻辑值全为1时为1
&&,\star两个逻辑值全为0时为0
异或\oplus两个逻辑值不相同时为1,否则为0
!与原逻辑相反

真值表

AB!AA+BA\starBA\oplusB
001000
011101
100101
110110

4.2.2、短路原则

在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行

  1. a&&b&&c,如果a为真,才要判断b,如果b为真,才要判断c
  2. a||b||c,只要a为真,b,c都不需要计算,a为假,b才需要计算,ab都为假,c才需要计算。

http://www.ppmy.cn/server/157550.html

相关文章

Gin 框架中间件原理

一、引言 在现代 Web 应用开发中&#xff0c;中间件扮演着至关重要的角色。Gin 作为一个流行的 Go 语言 Web 框架&#xff0c;其强大的中间件功能使得开发者能够高效地处理各种通用任务&#xff0c;如日志记录、身份验证、错误处理等。理解 Gin 框架中间件的原理&#xff0c;不…

vue3+element-plus暗黑模式切换动画圆弧过渡

vue3element-plus暗黑模式切换动画圆弧过渡 效果 html <div class"toggle" ref"switchRef" click.stop"toggleDark()"><el-icon v-show"!isDark" :size"30"><Moon /></el-icon><el-icon v-sh…

利用 Python 爬虫获取 1688 关键字 API 接口

在当今电商蓬勃发展的时代&#xff0c;掌握市场动态、洞察消费者需求已成为商家制胜的关键。而 1688 作为中国领先的 B2B 电商平台&#xff0c;汇聚了海量商品与交易数据&#xff0c;其关键字 API 接口更是蕴含着丰富的市场信息。本文将详细解读如何借助 Python 爬虫技术&#…

【git】-2 分支管理

目录 一、分支的概念 二、查看、创建、切换分支 1、查看分支-git branch 2、创建分支- git branch 分支名 3、切换分支- git checkout 分支名 三、git指针 -实现分支和版本间的切换 四、普通合并分支 git merge 文件名 五、冲突分支合并 ​​​​​​【git】-初始gi…

pytorch 比较两个张量的是否相等的函数介绍

在 PyTorch 中&#xff0c;可以使用多种函数来比较两个张量是否相等&#xff0c;具体选择取决于对比较精度的需求以及可能的数值误差。以下是常用的比较方法&#xff1a; 1. 完全相等的比较 (1) torch.eq 逐元素比较两个张量是否相等&#xff0c;返回布尔张量。 import torc…

Flink三种集群部署模型

这里写自定义目录标题 Flink 集群剖析Flink 应用程序执行Flink Session 集群&#xff08;Session Mode&#xff09;Flink Job 集群&#xff08;以前称为per-job&#xff09;Flink Application 集群&#xff08;Application Mode&#xff09; 参考 Flink 集群剖析 Flink 运行时…

字典树 / trie树

定义 当我手里有若干个字符串的时候&#xff0c;现在向你询问某个字符串时候是前面的这些字符串中的其中之一。如果我们用暴力的做法来求解的话&#xff0c;我可能需要对这些字符串进行逐一比对&#xff0c;效率是相当低的。那么这个时候我们就可以用 trie 树的结构简单高效的…

数据结构-串

串的实现 在C语言中所使用的字符串就是串的数据类型的一种。 串的存储结构 定长顺序存储表示 类似于线性表的顺序存储结构&#xff0c;用一组连续的存储单元存储串值的字符序列。 #define MAXLEN 255 //预定义最大串长为255 ​ typedef struct SString {char ch[MAXLEN]; …