栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++复习2

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++复习2

第二讲 信息的表示与存储

C++是运行效率较高的语言。本文参考西北工业大学在慕课网的“C++程序设计”内容书写,具体内容请参考https://www.icourse163.org/learn/NWPU-494001?tid=1467026445#/learn/content

本文目录如下:

  • 1 进位计数制及转换
    进位计数制;数制间的转换
  • 2 数据在计算机中的表示
    数值数据在计算机中的表示;非数值数据在计算机中的表示;

refer:

  1. 西北工业大学“C++程序设计”

1 进位计数值及转换 1.1 进位计数制

为了方便计算机的计算,有多种数字系统,常见的有二、八、十、十六进制,从而也诞生了进位计数制。进位计数值即用位权相加表示一个数,如下所示:

常见数字系统如下:

注意前缀和后缀不同,后缀是缩写,前缀需要记忆:

1.2 数制间的转换

将四种进制相互转换大致可以分为三种,分别是:十进制转为其余三种进制;其余三种进制转换为十进制;其余三种进制间相互转换。

一、十进制转为其余三种进制

整数部分采用除基取余法,小数部分采用乘基取整法。其中整数部分逆序取余,小数部分顺序取整。案例如下:

二、其余三种进制转为十进制

采用位权相加法,以二进制转十进制为例,案例如下:

三、其余三种进制间相互转换


如果是八进制和十六进制相互转换,则先转为二进制再转换会快一点。

2 数据在计算机中的表示 2.1 数值数据在计算机中的表示

计算机内部表示只有0、1,数值数据在计算机中的表示形式有整数型和浮点型,这一节内容可以在《计算机组成原理》中深入研究。

一、整数在计算机中的表示

整数在计算机中的表示有原码、反码、补码、移码等。其中原码是为了方便人们理解,反码是原码到补码的过度,补码才是计算机内部整数真正的表现形式,它的优势在于:补码能将加减都以加法方式实现。

(1)原码
在数值头部多出一个符号位,0正1负。符号位后是数值位,易于人理解。

(2)反码
正数的反码和原码相同,负数的反码将除符号位外所有位按位取反。

(3)补码
下面介绍如何从原码直接变成补码。正数的补码和原码相同,负数的补码为保留原码符号位,从右至左找到第一个等于1的数值位,将该数值位右边的位保留不变,该数值位左边的按位取反,符号位不变。
从[x]补求[-x]补的方法同上,只不过符号位也需要改变。即保留原码符号位,从右至左找到第一个等于1的数值位,将该数值位右边的位保留不变,该数值位左边的按位取反,包括符号位(符号位也要改变)。

补码的计算能将减法转为加法,如9-9即为9+(-9),案例如下:

二、浮点数在计算机中的表示

在视频中,老师使用的是IEEE754标准,在408大纲考试中使用的也是这种标准,将在此将这种标准进行讲解。
整型/整数指的是小数点固定不动的数,所以当他们要表达一个带小数点的数的时候,他们会分为两个数进行表示,其中一个数只表示整数部分,另一个数只表示小数部分。
而浮点数则是用一个数表示了一整个小数,浮点数指的是小数点不固定的数。在进行浮点数表示前,我们首先要把要表示的数据转为二进制,再将二进制转换为科学计数法的表示方式,这一步叫做规格化,如下:

在IEEE 754标准中一个浮点数分为三部分表示,分别是数符、阶码和尾数部分,其中数符反应数的正负,0正1负;阶码反应数的大小,用移码表示;尾数反应数的精度,用原码表示,小数点前第一位的1省略不表示。


常见浮点类型,float和double类型分别见下:

需要记住常见的单精度格式,1bit数符,8bit阶码,23bit尾数。

案例如下:

上面只是介绍了整数和浮点数以及浮点数的加减运算。然而整数的乘除,浮点数的加减,ALU加法器的实现仍未介绍,需要学习者参考《计算机组成原理》。

2.2 非数值数据在计算机中的表示

非数值部分在计算机中最常用的表示形式为ASCII方法,从0-127,共128个字符,用7bit便可以全部表示:

其中要记住的是A-65-0b100 0001,a-97-0b110 0001

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/968672.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号