【新书推荐】2.4节 数据宽度

news2024/9/23 11:16:57

本节内容:计算机受制于物理器件的制约,存储或读写数据的宽度是有长度限制的,通常我们使用数据位的位数来表示数据宽度,如8位、16位、32位、64位等。

         ■计算机计数与数学计数的区别:数学中的数据可以是无穷大或无穷小,不受限制。计算机存储或读写的数据必须指定数据宽度。

         ■数据宽度:计算机的数据宽度指存储或读写数据时用数据位表示的宽度。

         ■数据存储范围:表示指定的数据宽度内可以存储数值的范围,如数据宽度为8位,其可存储的正整数据范围是0~28-1。如果存储的数据超过最大宽度,多余的数据将被丢弃,称为数据溢出。

2.4.1 计算机计数与数学计数的区别

数字差异:数学上的数字,是没有大小限制的,可以是无穷大,也可以是无限小。但在计算机中,由于受硬件的制约,数据都是有长度限制的(我们称为数据宽度),超过最大宽度的数据会被丢弃。

例如:给定的一个数0x123456789ABC,如果规定它的宽度为32位(这里指的32位通常是二进制的32位数),那么该数值的有效值为0x56789ABC。如果运算结果超过其宽度将被略去,只保留有效位。

思维上的差异:数学计算记录在纸上,脑袋里或者其他地方,计算机是存储在物理存储器中的,比如寄存器,内存,硬盘等。计算机硬件设备的物理特性决定了数据存储的宽度。

2.4.2 数据宽度

数据宽度的定义:“数据宽度”就是内存存储单元的宽度,代表单个存储单元能存储多少位二进制数。

举例

假设存储单元的数据宽度为4位,意味一个存储单元最多只能存储4个数据位,即4个二进制数0或1。能够存储的二进制数范围如下:

0000  0001   0010   0011   0100   0101  0110   0111 

1000  1001   1010   1011   1100   1101  1110   1111

16进制表示:0~F。

10进制表示:0 ~ 24-1 = 0 ~ 15。

         ■计算机中常见的数据宽度

                                                图2-6 常见的数据宽度

2.4.3 数据存储范围

字节(Byte) :0~0xFF                   8位     (0  ~ 28-1)

字(Word): 0~ 0xFFFF                  16位    (0  ~ 216-1)

双字:0~ 0xFFFFFFFF                    32位    (0  ~ 232-1)

四字:0~0xFFFFFFFFFFFFFFFF    64位    (0  ~ 264-1)

如果要存储的数据超过最大宽度,那么多余的数据将被丢弃!称为数据溢出。

        

                                                        图2-7 存储范围

         图2-7分别描述了字节、字、双字和四字4个数据类型的存储范围,使用二进制数据位

来表示。

提示

         由编译器定义的数据类型称之为基本数据类型;不同的编程语言使用不同的编译器。不同的编译器定义的数据类型的宽度也会有所不同。

除此之外,也可以由程序员自定义的数据类型。我们将在第二十一章结构和记录中讲解自定义数据类型。

■以圆的形式表现数据的存储范围:双字:0 ~ 0xFFFFFFFF

          

                                                图2-8 以圆的形式表示存储范围

如果要存储的数据超过最大宽度,那么多余的数据将被丢弃,称为数据溢出!

动手实验4:加法运算中的数据溢出

         在DTdebug调试器中,执行32位汇编如下汇编指令:

         mov al,0xFF

         add al,1

         观察al寄存器中的值,并给出解释。

         第一步:打开DTdebug.exe调试器,加载IPMSG2007.exe程序,或随意加载任一程序;

                                                                                      图2-9 Dtdebug调试器加载程序

第二步:双击第一条汇编指令,在弹框中输入mov al,0xff,点击Assemble,接着输入第二条指令 add al,1。

                  

                                                图2-10 输入第一条指令

                                                图2-11 输入第二条指令

         第三步:按F8单步执行第一条语句mov al,0xff,al=0xff。

                        

                                图2-12 执行第一条指令

         第四步:继续按F8,执行第二条语句add al,1,al=0。

                 

                                图2-13 执行第二条指令

结论:十六进制数FFH+1 = 100H。Al寄存器的存储范围是0~FFH,100H超出FF范围,因而AL寄存器只保留8位数00H,进位值1溢出后丢失。

提示

         16位计算机一次读写内存数据的最大宽度为16位,因而称为16位计算机。与此同理,32位计算机一次读写内存数据的最大宽度为32位。64位计算机一次读写内存数据的最大宽度为64位。

思考

1.在16位计算机中,超过16位的数据如何进行算术逻辑运算?

2.数据溢出后丢失了吗?假如真的丢失,是否可以找回?

这两个问题先留给读者,我们将在后续的课程中,以代码的形式给出答案。

练习

仔细体会计算机计数与数学计数的区别:计算机中的数据一定是有宽度限制的。

思考题:

1、为什么计算机会被称为16位、32位计算机或者64位呢?

2、如果数据超过内存单元的数据宽度,计算机还可以对该数据进行加减乘除运算吗?

本文摘自编程达人系列教材《X86汇编语言基础教程》。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1409355.html

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

相关文章

01.领域驱动设计:微服务设计为什么要选择DDD学习总结

目录 1、前言 2、软件架构模式的演进 3、微服务设计和拆分的困境 4、为什么 DDD适合微服务 5、DDD与微服务的关系 6、总结 1、前言 我们知道,微服务设计过程中往往会面临边界如何划定的问题,不同的人会根据自己对微服务的理 解而拆分出不同的微服…

解读IP风险画像标签:深度洞察网络安全

在当今数字化的世界中,网络安全成为企业和个人关注的焦点。IP风险画像标签作为网络安全的利器,扮演着深度洞察网络风险的角色。本文将深入解读IP风险画像标签,揭示其在网络安全领域的重要性和功能。 1. IP风险画像标签是什么? I…

Kubernetes/k8s之安全机制:

k8s当中的安全机制 核心是分布式集群管理工具,容器编排,安全机制核心是:API SERVER作为整个集群内部通信的中介,也是外部控制的入口,所有的安全机制都是围绕api server开设计的。 请求api资源 1、认证 2、鉴权 3、准入机制 三…

Java设计模式-装饰器模式(10)

大家好,我是馆长!今天开始我们讲的是结构型模式中的装饰器模式。老规矩,讲解之前再次熟悉下结构型模式包含:代理模式、适配器模式、桥接模式、装饰器模式、外观模式、享元模式、组合模式,共7种设计模式。。 装饰器模式(Decorator Pattern) 定义 装饰(Decorator)模式…

npm安装卡住问题(最新版)

npm安装卡住问题(最新版) 背景: ​ 最近这两天用npm安装一些包的时候,发现一直卡住: 报错: idealTree:npm: sill idealTree buildDeps之前能用的现在不能用了,我一想,是不是源头的问题,还真是…

软考复习之UML设计篇

UML统一建模语言 构件图:描述系统的物理结构,它可以用来显示程序代码如何分解成模块 部署图:描述系统中硬件和软件的物理结构,它描述构成系统架构的软件构件,处理器和设备 用例图:描述系统与外部系统及用…

链表--104. 二叉树的最大深度/medium 理解度A

104. 二叉树的最大深度 1、题目2、题目分析3、复杂度最优解代码示例4、适用场景 1、题目 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,n…

谷粒商城配置虚拟机

一、创建虚拟机 之前有在VM里面建一个ubuntu的虚拟机,准备拿来直接用,网络设置为NAT模式,查看我的虚拟机是虚拟机:192.168.248.128 主机: 192.168.2.12。可以互相ping通。 二、linux安装docker Docker docker是虚拟…

OpenTCS IDEA 全流程搭建和运行指南

OpenTCS IDEA 全流程搭建和运行指南 JDK安装下载JDK版本 openTCS源码下载IDEA 打开运行查看下载源码中gradle版本号下载gradle 二进制文件配置IDEA Gradle本地仓库IDEA打开openTCS项目运行顺序 JDK安装 下载JDK版本 JDK网址 注意: 请下载官方文档标准的java13JDK o…

C语言零基础入门第2天《 visual studio下载安装教程和搭建开发环境及踩坑指南》(保姆级图文教程)

visual studio下载安装教程和搭建开发环境 1、 项目实战效果图2、简单了解一下目前主流的开发环境3、 visual studio下载地址4、 visual studio安装教程5、 配置visual studio环境变量 6、如何新建一个C项目7、新建第一个C程序8、用代码测试创建的项目是否可用8、如何成功让代码…

vue解决:Parsing error: No Babel config file detected for

解决babel配置问题 报错信息如下: Parsing error: No Babel config file detected for C:\Users\yjj\Desktop\大学\大二\学习\vue_ bags \slot_ study\src\App. vue. Either disable config file checking withrequireConfigFile: false, or configure Babel so tha…

《游戏-01_3D-开发》之—人物动画控制器

创建变量, 创建线, 连接, 选中线会变为蓝色,新增变量, 设置线, 双击子层进入子层, 创建变量, 双击SkillPanel 拖拽好之后返回上一层, 依次连接, 设置线&#…

凭服务出圈的海底捞,竟然在这件事上也很卷

1月9日,法大大与企业绿色发展研究院联合发布了《2023年签约减碳与低碳办公白皮书》(点击阅读及下载:法大大推出“签约减碳”年度账单,引领低碳办公新风潮),该白皮书基于《低碳办公评价》标准倡导的创新减碳…

图像分类】【深度学习】【轻量级网络】【Pytorch版本】EfficientNet_V2模型算法详解

【图像分类】【深度学习】【轻量级网络】【Pytorch版本】EfficientNet_V2模型算法详解 文章目录 【图像分类】【深度学习】【轻量级网络】【Pytorch版本】EfficientNet_V2模型算法详解前言EfficientNet_V2讲解自适应正则化的渐进学习(Progressive Learning with adaptive Regul…

《如何画好架构图》学习笔记

看了一堂《如何画好架构图》的公开课,结合网上的资料与经验做一些思考总结。文中的例子和图片大多是从课程中摘录的。 1. 4R架构定义 4R架构定义其实是软件架构定义经过归纳提炼后的简称。 软件架构定义:软件架构是指软件系统的顶层(Rank&am…

Vue好看的组件库:Element

文章目录 1、什么是Element2、Element快速入门3、Element布局3.1、 Layout 局部3.2、容器布局 1、什么是Element Element:是饿了么公司前端开发团队提供的一套基于 Vue 的网站组件库,用于快速构建网页 Element 提供了很多组件(组成网页的部件…

2024-01-24(ElasticSearch)

1.mysql和elasticsearch的架构: 2.IK分词器利于分中文词汇。 底层是有一个中文字典,这个字典中的中文词汇也是可以拓展的和禁用某些词。 3.mapping常见属性: type:数据类型 index:是否索引 analyzer:分…

记录一下uniapp 集成腾讯im特别卡(已解决)

uniapp的项目运行在微信小程序 , 安卓 , ios手机三端 , 之前这个项目集成过im,不过版本太老了,0.x的版本, 现在需要添加客服功能,所以就升级了 由于是二开 , 也为了方便 , 沿用之前的webview嵌套腾讯IM的方案 , 选用uniapp集成ui ,升级之后所有安卓用户反馈点击进去特别卡,几…

构筑服务「护城河」,汽车品牌如何从 0 到 1 搭建语音质检体系

「质检」一词对于汽车行业并不陌生。商品生产商采用一定检验测试手段和检查方法测定产品的质量特性,从而判断产品的质量标准。 随着消费需求的多样化,越来越多的品牌开始重视商品背后的服务。尤其对于汽车这种高客单价的耐消品领域,商品带来的…

第12章_集合框架(Collection接口,Iterator接口,List,Set,Map,Collections工具类)

文章目录 第12章_集合框架本章专题与脉络1. 集合框架概述1.1 生活中的容器1.2 数组的特点与弊端1.3 Java集合框架体系1.4 集合的使用场景 2. Collection接口及方法2.1 添加2.2 判断2.3 删除2.4 其它 3. Iterator(迭代器)接口3.1 Iterator接口3.2 迭代器的执行原理3.3 foreach循…