软考中级(软件设计)----数据的进制转换以及算术逻辑运算

简介: 软考中级(软件设计)----数据的进制转换以及算术逻辑运算

1 数据的进制转化

  • 进制的表示:二进制、十六进制,二进制符号位0b,一般表示为0b0011,十六进制符号位0x或H,可以表示为0x18F或18F
  • R进制整数转十进制:位权展开法,用R进制数的每一位乘以R的n次方,n是变量,从R进制数的整数最低位开始,依次为0,1,2,...累加
  • 十进制转R进制:十进制整数除以R倒取余数,用十进制数除以R,记录每次所得的余数,若商不为0,则继续除以R,直至商为0,然后将所有余数从下到上记录,排列成从左到右顺序,即转换后的R进制数
  • m进制转n进制:先将m进制数转化为十进制数,再将十进制数转化为n进制数,中间需要通过十进制中转
  • 二进制转八进制:每三位二进制数转换为一位八进制数,二进制数位个数不是三的倍数,则在前面补0(原则是数值不变),如二进制数01101有五位,前面补一位0就有六位,即001101,每三位转换为一位八进制数,即001=1,101=1+4=5,即01101=15
  • 二进制转十六进制:每四位二进制数转换为一位十六进制数,二进制位数不是四的倍数,则在前面补0,如二进制数101101有六位,前面补两个0就有八位,即00101101,每四位数转换为一位十六进制,0010=2,1101=13=D,即101101=2D

2 数的表示

  • 机器数:各种数值在计算机中表示的形式,其特点是使用二进制计数制,数的符号位0和1表示,小数点则隐含,不占位置
  • 机器数有符号数和无符号数之分,无符号数表示整数,没有符号位,带符号数的最高位为符号位,整数符号位为0,负数符号位为1
  • 定点表示法分为纯小数和纯整数两种,其中小数点不占存储位,而是按照以下约定:

    • 纯小数:约定小数点的位置在机器数的最高位数值位之前
    • 纯整数:约定小数点的位置在机器数的最低位数值为之后
  • 真值:机器数对应的实际数值

3 数的编码方式

  • 原码: 一个数的正常的二进制表示,最高位为符号,整数0的原码有两种形式:+0(0 0000000)和-0(10000000)
  • 反码:正数的反码即原码;负数的反码是在原码的基础上,除符号位外,其他各位按位取反。数值0的反码也有两种形式:+0(00000000),-0(11111111)
  • 补码:正数的补码即原码;负数的补码是在原码的基础上,除符号位外,其他各位按位取反,然后末位+1,若有进位则产生进位,因此数值0的补码只有一种形式:+0=-0=00000000
  • 移码:用作浮点运算的阶码,无论是正数负数,都是将补码的首位(符号位)取反得到移码
  • 机器字长为n时各种码制表示的符号位数的取值范围(差别在与0的表示,原码和反码分+0和-0,补码只有一个0,因此可以多表示一个)

在这里插入图片描述

  • 例:若机器字长为8,请给出45和-45的原码、反码、补码和移码
真值 原码 反码 补码 移码
45 00101101 00101101 00101101 10101101
-45 10101101 11010010 11010011 01010011

4 浮点数表示

  • 浮点数:表示方法为N=F2^E,其中E为阶码,F称为尾数,类似于十进制的科学计数法,如85.125=0.8512510^2,二进制如:101.011=0.101011*2^3
  • 在浮点数的表示中,阶码为带符号的纯整数,尾数为带符号的纯小数,要注意符号位占最高位(正数0负数1),其表示格式如下:
  • 很明显,与科学计数法类似,一个浮点数的表示方法不是唯一的,浮点数能表示数值范围由阶码确定,所表示的数值精度由尾数确定
  • 尾数的表示采用规格化方法,即带符号尾数的补码必须为1.0xxx(负数)或者0.1xxx(正数),其中x可以为0或者1
  • 浮点数运算步骤

    • 对阶(使两个数的阶码相同,小阶向大阶看齐,叫嚣阶码增加即为,尾数就右移几位)
    • 尾数计算(相加,若是减运算,则加负数)
    • 结果规格化(即尾数表示规格化,带符号尾数转换为1.0xxx或者0.1xxx)

5 算数运算和逻辑运算

  • 数与数之间的算术运算包括加减乘除等基本算术运算
  • 逻辑运算包括逻辑与&、逻辑或|、逻辑异或、逻辑左移<<、逻辑右移>>

6 考试真题

  • 题目如下,答案为:C

在这里插入图片描述

目录
相关文章
|
6月前
|
算法 数据处理 C语言
【软件设计师备考 专题 】逻辑运算与算术运算:理解逻辑代数
【软件设计师备考 专题 】逻辑运算与算术运算:理解逻辑代数
108 0
|
6月前
|
C语言
c语言编程练习题:7-10 算术入门之加减乘除
对于输入的两个整数,按照要求输出其和差积商。
118 0
|
1月前
|
存储 Java 开发者
【编程基础知识】 计算机中的数学魔法:二进制加减运算全解析
本文深入解析了计算机中二进制加减运算的原理,涵盖原码、反码和补码的概念及应用,结合具体示例,帮助读者理解计算机底层数学运算机制,适合Java开发者学习。
43 0
|
6月前
|
算法 C++
【软件设计师备考 专题 】数学基础知识:命题逻辑、谓词逻辑、形式逻辑与数值计算
【软件设计师备考 专题 】数学基础知识:命题逻辑、谓词逻辑、形式逻辑与数值计算
80 0
|
6月前
软考中级(软件设计)——十进制转二进制的浮点数运算
软考中级(软件设计)——十进制转二进制的浮点数运算
81 0
|
6月前
软考中级(软件设计)——十进制转八进制的浮点数运算
软考中级(软件设计)——十进制转八进制的浮点数运算
82 0
|
6月前
软考中级(软件设计)——十进制转十六进制的浮点数运算
软考中级(软件设计)——十进制转十六进制的浮点数运算
111 0
|
6月前
|
数据处理 C语言
【C语言宝库】- 操作符|详解进制转换|计算机小白必备技能(上)
【C语言宝库】- 操作符|详解进制转换|计算机小白必备技能(上)
72 0
|
6月前
|
存储 编译器 C语言
c语言进制转换、操作符万字详解------附带多道经典习题
常用的进制分类 二进制:由0和1组成 八进制:由0~7数字组成 十进制:由0~9数字组成 十六进制:由0~9和A~F组成
|
存储 IDE Java
程序员基本功,为什么你一定要懂16进制?
其实计算机需要的只是二进制,需要十六进制的是我们人
1418 0
程序员基本功,为什么你一定要懂16进制?