101.计组--二章

news/2025/9/19 9:19:38/文章来源:https://www.cnblogs.com/gaodiyuanjin/p/19093092

数据的表示和运算

"自六月份另一个学校毕业 已经有拖三个多月的计组学习 当时其实已经已有一些学习 仅仅差了一节内容结束 也确实因为这个复杂的运算各类东西 言归正传 新的学校 新的学习 开始总结"

先看一下总的
image

还是分为三大块 三步走

一.数制 编码

先说数制 其实就是各类进制及其转换

  • 二进制 B
  • 十进制 D
  • 八进制 O
  • 十六进制 H(Ox)

首先说点废话:计算机采用二进制(0和1) 两个稳定状态的物理器件
至于各种进制就是逢几进一

image

两道类型结束 数制

1.二进制和十进制转换

二进制转换十进制:
很简单 如1111.11(二进制)转换为15.75(十进制)

image

同样的十进制转换二进制 则是转过来
如15.75(十进制)转换为1111.11(二进制)

image

十变二
整数部分就一直除于二 取余数 直到1(从下到上)
小数部分就一直乘2 取整数 直到1(从上到下)
二变十
知道一个常见的就行
128 64 32 16  8  4  2  1对应二的几次方
7   6  5  4  3  2  1  0
2.二进制和八进制 十六进制转换

二进制转换其八进制和十六进制
对于 421 和 8421方法

如1111000010.01101
image
image

相反八进制 十六进制转换二进制就是把每个拆分出来

需要注意的就是划分的时候 整数从右向左 小数部分从左向右
还有就是十六进制超过10以后 有专门字母代替
A(10) B(11) C(12) D(13) E(14) F(15)

再看编码
之前是属于参加过考试比较容易掌握的计算机基础知识
接下来编码
我认为就是两个知识点

  • 原反补移码
  • 整数之间的转换
1.原反补移码
两个概念:
真值: +15 -8 带+ -符号的数
机器数:符号数字化 如0100 原反补码
移码:常用于表示浮点数的阶码 只能表示整数

总体来看不再一一分开

0的表示 原码 反码表示不唯一
正数的原反补码一样
整数用补码表示

取值范围
image

一道题来变化弄懂原反补移码的变换:

如求原码-42 的反 补 移码
image

2.整数

有符号整数和无符号整数

正常例如写的C语句中 int a=5;默认是有符号的 无符号修饰为unsigned

有个小注意:unsigned a =5; 默认为int型

整数之间的转换:符号 字长

  • 有无符号整数之间的转换
  • 不同字长整数之间的转换
#include <stdio.h>
int main(void) {short a = -4321;unsigned short b = (unsigned short) a;printf("%u", b);
}

-4321转换成无符号 字长并未改变
先求出其补码 然后其符号位不再是符号而是数值
image

image

不同字节整数之间的转换:
长 -> 短   截高位
短 -> 长   有符号 高位补1 无符号 高位补0

例如: 长 -> 短

#include <stdio.h>
int main(void) {int a = -34991;short b = (short) a;printf("%d", b);
}

image

短 -> 长

#include <stdio.h>
int main(void) {short a = -4321;int b = a;  //有符号短 -> 长unsigned short c = (unsigned short) a;unsigned int d = c;  //无符号 短 -> 长printf("%u\n %u", b, d);
}

image

image

大致第一块的内容知识 然后接下来看一些题目

8位原码能表示的不同数据有多少个
image

image

若寄存器内容10000000 若它等于-0 则为什么码
首先排除补移码 因为它们0表示唯一 不区分+ -
然后看是原码还是反码
image

在计算机中,通常用来表示主存地址的是 无符号数

16位补码整数0x8FA0扩展为32位应该是
image

image

image

image

小总结 对于负数比较 补码比较则是绝对值的比较 原码则是那个数的比较


二.运算

  1. 运算部件
  2. 移位运算
  3. 加减乘除运算
1.运算部件

之前总结过的运算器的组成:

https://www.cnblogs.com/gaodiyuanjin/p/18800302
ALU:算数逻辑单元
ACC:累加器
MQ:乘商寄存器
X:操作数寄存器

核心就是ALU的(带标志)加法器 之前我们需要搞懂几个东西 我简单介绍 然后一个总结

与 或 非 与非 或非 异或 同或
这些我们了解的用门电路图表示出来


image


image


image

与非 (就是先与 再非)
image

或非 (先或 再非)
image

异或 (没什么特殊的 跟或一样 除了 1 1为0)
image

同或 (跟与一样 除了 0 0为1 )
image

概述总结图:
逻辑门电路

多路选择器
image

还有一个比较重要的新知识 拥有标志的加法器

  • OF 溢出标志
  • SF 符号标志
  • ZF 零标志
  • CF 进位/错位标志
OF=1 表溢出(有符号)
SF=0 结果为正
ZF=1 结果为0
CF=1 表溢出(无符号)
2.移位运算
逻辑移位(无符号整数) 无论左移或右移 都补0
算术移位 左移 补0 右移 补符号位

很抽象 做题弄明白

补码定点整数10010101 右移一位后的值
image
一般指的就是算术移位

2018统考题 整数X的机器数为 1101 1000 分别对X进行逻辑右移1位和算数右移1位操作操作 得到的机器数各是
image

那发生移位 肯定会伴随溢出问题

逻辑移位:只要高位的1移出 则溢出
算术移位:
左移 前后符号位变化 溢出
右移 低位1移出 丢失精度
3. 加减乘除运算

三步走 运算规则 溢出 运算电路

  1. 加减
[A+B]补=[A]补+[B]补
[A-B]补=[A]补+[-B]补
需要注意的就是减法当成加法运算
还有就是运算出来的符号位 要相应变化

设字长为8位 A=15,B=24,求[A+B]补 [A-B]补
image

溢出判断:
正+正=1符号位 得到负数溢出
负-正=0符号位 得到正数溢出一位符号位:操作的两个数符号相同 结果与原来不同 结果溢出双位符号位(运算结果为两个符号位ab):
ab=00 正数 无溢出
ab=01 正溢出
ab=10 负溢出
ab=11 负数 无溢出最高位进位和符号位进位相同 则无溢出

运算电路:

例如此电路 假设 X 0011 Y 0100
image
如果做加法 直接相加
若做减法 Y需要先取反 然后+1 变成1100 再相加

需要注意Sub为0时做加法 为1时做减法

无符号数大小比较:(ZF零标志 CF进/借位标志)
A=B ZF=1 CF=0
A>B ZF=0 CF=0
A<B ZF=0 CF=1

有符号数大小比较:(ZF零标志 OF溢出标志 SF符号标志)
A=B ZF=1
A>B OF=SF ZF=0
A<B OF不等于SF ZF=0

  1. 乘除
    我认为这里更重要的是运算规则
    乘除各用一道例题来学习 然后再用真实题目来理解
1.乘积的符号位由乘数符号位异或得到
2.乘积的数值位是两个乘数的绝对值之积

乘:A=-15 B=-13 A·B
image
image
使用加法和移位运算实现

被除数与除数 同号减法 异号加法
余数与除数补码 同号上商1 异号上商0

除:A=-0.1001 B=0.1101
image
至于数值运算:
参考deepseek

直接看真正需要掌握的题目类型

算数逻辑单元(ALU)的功能一般包括 算术运算和逻辑运算
机器运算发生溢出的根本原因是寄存器的位数有限
原码乘法先取操作数绝对值相乘 符号位单独处理
原码乘法符号位不参与运算

注意8位定点补码表示的数据范围为-128~127
image

image

image

image

image

image
image

image

需要注意 求[-啥]补码时候 负数直接取反 正数求出原码后取反

image


三.浮点数

不分总结了 直接上

image

一个重要的概念 IEEE754标准浮点数 基数都是2
image

尾数用原码表示
单精度浮点数偏移值127 双精度浮点数偏移值1023

表示范围
image

阶码全为0或全为1时的特殊意义:
阶码 尾数
全0 全0 +0/-0
全0 非0 非规格化数 正数 2的-126次方(0.f) 负数 -2的-126次方(0.f)
全1 全0 +∞/-∞
全1 非0 非数

那么如何考察呢 就是IEEE754数的转换

将十进制数-8.25转换成IEEE754单精度浮点数格式表示
image

IEEE754单精度浮点数C6400000H的值
image

注意:IEEE754规定隐藏位1的位置在小数点之前 需要隐藏 这就是上面第一个求尾数的时候 将1隐藏 第二个求尾数的时候 将1还原出来

阶码越大 表示的数范围越大 尾数越多 精度越高

浮点数加减运算 对阶
image

左规和右规
image

左规和右规都有可能产生溢出

数据大小端和对齐存储

先弄清楚几个概念
LSB最低有效字节 表示数据的低位
MSB最高有效字节 表示数据的高位大端对齐:从高位到低位  字节顺序和原序列相同
小端对齐:从低位到高位  字节顺序和原序列相反

关于边界对齐方式存储和之前学的C语言中结构体共用体对齐一致
参考:https://www.cnblogs.com/gaodiyuanjin/p/18405937

最后一节的题目来看:

一道同类型题目
image

尾数规格化:
原码:最高有效位为1
正:0.1XXX
负:1.1XXX补码:小数点后一位和符号位不同

image

单精度浮点数 原码 补码 移码的32位机器数均为0xF0000000 从大到小顺序
移>补>原>浮

image
上面总结过 小阶向大阶对齐 E差多少 就右移多少

大小端对齐题目
image

image

image

image

边界对齐问题
image

image

image

image

大致这是第二章总结 应该是目前我总结写过最长的博客
下一章存储系统 再见

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

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

相关文章

LobeChat搭建

docker search lobe-chat docker pull lobehub/lobe-chat docker run -d -p 3210:3210 -e ACCESS_CODE=lobe66 --name lobe-chat lobehub/lobe-chat本文来自博客园,作者:潇汀,转载请注明原文链接:https://www.cn…

推荐几家国外的AI模型应用网站

一、聊天 1、OpenAI——ChatGPT 网址:https://chatgpt.com/ 简介:OpenAI 开发的对话式AI模型,擅长自然语言处理,能回答问题、创作内容和提供学习支持。 实际体验: 对话聊天式AI的引领者,综合能力很强,从发布至今…

【maven01】依赖管理的工具 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

长园智能装备遇上利驰SuperHarness-3D,实现充电桩线束设计效率与精度双提升!

利驰数字线束软件,赋能长园智能装备充电桩线束智造。设计案例:​感谢南瑞、盛弘、长园等众多充电桩龙头企业,选择利驰数字线束[抱拳][抱拳][抱拳]

学习笔记:操作分块 / 根号重构

感谢校内模拟赛给我强行灌输了这个东西。。。 概述 操作分块 / 根号重构,又名时间轴分块,可以解决需要多次修改和查询的问题,常常难以直接维护。 借鉴序列分块的思想,我们设定一个阈值 \(B\),将连续 \(B\) 次操作…

url测试脚本2

!/bin/sh . /etc/init.d/functions 待检测的 URL 列表 array=( "http://blog.oldboyedu.com" "http://blog.etiantian.org" "http://oldboy.blog.51cto.com" "http://10.0.0.7&quo…

运动控制教学——5分钟学会机器人运动学! - 实践

运动控制教学——5分钟学会机器人运动学! - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas",…

url测试脚本3

!/bin/sh . /etc/init.d/functions 待检测的 URL 列表 array=( "http://mail.163.com" "http://mail.sina.com/" ) 等待效果,输出进度 wait_for_start() { echo -n "Start Curl_check"…

深入解析:linux基本知识

深入解析:linux基本知识pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &q…

解决方案架构师是做什么

解决方案架构师 面试题 客户是怎么管理的 渠道变革变换的是哪些内容。变的是什么? 分层分级是怎么设计,价格体系是怎么制定的 marking 是怎么做的? CAP模型,是怎么管理的, 营销活动和销售是如何结合的,IT解决方案…

鸿蒙应用开发从入门到实战(九):ArkTS渲染控制

ArkTS拓展了TypeScript,可以结合ArkUI进行渲染控制,是的界面设计具有可编程性。本文简要描述鸿蒙应用开发中的条件渲染和循环渲染。大家好,我是潘Sir,持续分享IT技术,帮你少走弯路。《鸿蒙应用开发从入门到项目实…

C# 2025年6-9月TIOBE排名增长及未来展望

根据 TIOBE 编程语言排行榜 2025 年 6 月至 9 月的公开数据,C# 的排名和市场份额变化如下(综合多个月份数据整理):一、 C# 在 2025 年 TIOBE 排行榜的连续增长趋势2025 年 6 月排名:第 5 位市场份额:4.69%2025 年…

一个基于 .NET 开源、简易、轻量级的进销存管理系统

前言 最近有小伙伴在后台留言问:.NET 有值得推荐学习的进销存管理系统吗?今天大姚给大家推荐一个基于 .NET 开源、简易、轻量级的进销存管理系统:JxcLite。 项目介绍 JxcLite 是一个基于 Known 框架开发(基于 .NET…

Java 接口详解

Java 接口详解接口(Interface)是 Java 中实现抽象、定义规范、支持多态的核心机制,也是面向对象编程(OOP)中 “封装、继承、多态” 三大特性的重要载体。它不仅是代码层面的语法结构,更体现了 “面向接口编程” …

飞算 JavaAI 启用体验全解析

飞算 JavaAI 启用体验全解析2025-09-19 09:03 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important;…

采用tree命令导出文件夹/文件的目录树(linux)

采用tree命令导出文件夹/文件的目录树(linux)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

MySQL 字符集详解

MySQL 字符集详解在 MySQL 数据库中,字符集(Character Set)是决定数据如何存储、传输和显示的核心组件,直接影响数据一致性(如避免乱码)、查询性能和多语言支持能力。本文将从字符集的基础概念出发,深入讲解 My…

The 2024 ICPC Asia East Continent Online Contest (I) 4/12 A/F/G/M

M. Find the Easiest Problem 签到题,直接模拟即可点击查看代码 #include<bits/stdc++.h> #define int long long using namespace std; using pii=pair<int,int>; using ll = long long; using ull = un…

Python上课

Python上课题目 杨辉三角 99 乘法表

Yapi接口文档本地安装

Yapi接口文档本地安装t