计算机组成学习-数据的表示和运算总结

 1、进制与编码

1.1 进位计数法

常用的进位计数法有十进制、二进制、八进制、十六进制等。十六进制每个 数位可取0〜9、A、B、C、D、E、F中的任意一个,其中A、B、C、D、E、F分别表示 10〜15。

八进制数字通常以前缀 "0"(零)加上数字表示,例如,八进制数 12 表示为 014。在JavaScript中,你可以使用前缀 "0o" 或 "0O" 来表示八进制数。例如:0o14

十六进制数字通常以前缀 "0x" 或 "0X" 开头表示,例如,十六进制数 1A 表示为 0x1A

1.2 不同进制数之间的相互转换

(1)二进制混合数转化为八进制或16进制

对于一个二进制混合数(既包含整数部分,又包含小数部分),在转换时应以小数点为界。 其整数部分,从小数点开始往左数,将一串二进制数分为3位(八进制)一组或4位(十六进制) 一组,在数的最左边可根据需要加“0”补齐;对于小数部分,从小数点开始往右数,也将一串 二进制数分为3位一组或4位一组,在数的最右边也可根据需要加“0”补齐。

(2) 十进制数转换为任意进制数

1.3 定点数的编码表示

定点数编码表示法主要有以下4种:原码、 补码、反码和移码。

1.3.1 原码

用机器数的最高位表示数的符号,其余各位表示数的绝对值。

真值零的原码表示有正零和负零两种形式,即[+0]原= 00000和[-0]原= 10000

1.3.2 反码

正数反码的定义和相应的补码(或原码)表示相同。负数反码的定义在绝对值按位求反。

0的表示不唯一(即存在正负0);

1.3.3 补码

对于正数,与原码的方式一样。对于负数,符号位取1,其余各位由真 值“各位取反,末位加1”得到。补码转换为真值,若符号位为0,与原码的方式一样。若符号位为1,真值的符号为负,数值部分各位由补码“各位取反,末位加1”得到。

 0的表示唯一

1.3.4 移码

移码就是在真值X上加上一个常数(偏置值)。如果机器字长为n,偏移值为2^{n-1}

2、运算方法和运算电路

(有需要再弄懂)

此ALU的核心是带标志加法器

3、整数的表示和运算

(有需要再弄懂)

.有符号数和无符号数的转换

将short int强制转换为unsigned short 只改变数值,而两个变量对应的每位都是一样的。

不同字长整数之间的转换,当大字长变量向小字长变量强制类型转换时,系统把多余的高位部分直接截 断,低位直接赋值,因此也是一种保持位值的处理方法。而短字长到长字长的转换,在位值相等的条件下还要补充高位的符号位,可以理解为数值 的相等。

4、 浮点数的表示与运算

 浮点数的运算:1. 对阶,2. 尾数求和,3. 规格化,4. 舍人,5. 溢出判断

 5、校验码(数据校验)

  • 数据校验原因:为减少和避免数据在计算机系统运行或传送过程中发生错误,在数据的编码上提供了检错和纠错的支持。
  • 数据校验码的定义:能够发现某些错误或具有自动纠错能力的数据编码;
  • 数据校验的基本原理是扩大码距;码距为任意两个合法码之间不同的二进制位的最少位数;仅有一位不同时,称其码距为1。

5.1 奇偶校验码

  • 判断数据中1的个数设置1位校验位;
  • 分奇校验和偶校验两种,只能检错,无纠错能力;
  • 偶校验:每个码字(包括校验位)中1的数目为偶数。
  • 奇校验:每个码字(包括校验位)中1的数目为奇数。
  • 只能发现奇数个错误,不能纠错。

5.2海明校验码

在奇偶校验的基础上增加校验位而得;具有检错和纠错的能力;

设K为有效信息的位数,r为校验位的位数,则整个码字的位数N应满足不等式:N=K+r≦2r-1   通常称为(N,K)海明码设某(7,4)海明码表示的码字长度为   7   位,校验位数为     3 位。

每个校验位Pi从低到高被分在海明码中位号2i-1的位置;

5.3 循环冗余校验码(CRC)

通过模2的除法运算建立数据信息和校验位之间的约定关系;具有很强的检错纠错能力。

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

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

相关文章

C++串口通信(转载)

Windows串口读取 要使用 C 读取串口数据&#xff0c;你需要使用串口编程库。在 Windows 平台上&#xff0c;可以使用 WinAPI 提供的串口编程接口。以下是一个简单的示例程序&#xff0c;用于打开 COM1 串口端口&#xff0c;读取数据并输出到控制台&#xff1a; #include <…

GoLong的学习之路,进阶,RabbitMQ (消息队列)

快有一周没有写博客了。前面几天正在做项目。正好&#xff0c;项目中需要MQ&#xff08;消息队列&#xff09;&#xff0c;这里我就补充一下我对mq的理解。其实在学习java中的时候&#xff0c;自己也仿照RabbitMQ自己实现了一个单机的mq&#xff0c;但是mq其中一个特点也就是&a…

基于ResNet18网络完成图像分类任务

目录 1 数据处理 1.1 数据集介绍 1.2 数据读取 1.3 构造Dataset类 2 模型构建 3 模型训练 4 模型评价 5 模型预测 6 什么是预训练模型和迁移学习 7 比较“使用预训练模型”和“不使用预训练模型”的效果。 总结 在本实践中&#xff0c;我们实践一个更通用的图像分类任务…

rust-flexi_logger

flexi_logger 是字节开源的rust日志库。目前有log4rs、env_log 等库&#xff0c;综合比较下来&#xff0c;还是flexi_logger简单容易上手&#xff0c;而且自定义很方便&#xff0c;以及在效率方面感觉也会高&#xff0c;下篇文章我们来测试下。 下面来看下怎么使用 关注 vx gol…

探索未来能源:可控核聚变的挑战与希望

探索未来能源:可控核聚变的挑战与希望 引言 随着人类社会的不断发展,对能源的需求也在持续增长。传统的化石燃料能源在燃烧过程中会产生大量的二氧化碳和其他温室气体,导致全球气候变暖,对环境产生了重大威胁。因此,寻找一种清洁、可持续、高效的能源成为了当务之急。在…

目标检测YOLO系列从入门到精通技术详解100篇-【目标检测】单目视觉估计

目录 前言 算法原理 单目3D目标检测新网络 GUP module以及HTL 单目深度估计 数据集介绍 2.1 KITTI

Redis hash表源码解析

整体数据结构&#xff1a;链式hash解决hash冲突、采用渐进式hash来完成扩容过程。 /** 哈希表节点*/ typedef struct dictEntry {// 键void *key;// 值union {void *val;uint64_t u64;int64_t s64;} v;// 指向下个哈希表节点&#xff0c;形成链表struct dictEntry *next;} dict…

ubuntu22.04离线手动安装openstack yoga和ceph quincy

目录 写在前面材料准备一. OpenStack部1. 创建虚拟网络和虚拟机2. 配置离线环境3. 环境准备3.1 配置网络3.2 配置主机名并配置解析3.3 时间调整3.4 安装openstack客户端3.5 安装部署MariaDB3.6 安装部署RabbitMQ控制节点操作3.7 安装部署Memcache控制节点操作 4. 部署配置keyst…

TwinCAT3一个PLC设备里多个程序工程之间通讯

目录 1、创建TwinCAT3工程&#xff0c;再分别创建两个PLC程序工程 2、PLC1工程中添加如下代码&#xff0c;然后编译重新生成PLC1工程 3、PLC2工程中添加如下代码&#xff0c;然后编译重新生成PLC2工程 4、变量关联 5、一个PLC运行多个PLC工程设置 7、工程下载链接 1、创建…

配置中心--Spring Cloud Config

目录 概述 环境说明 步骤 创建远端git仓库 准备配置文件 配置中心--服务端 配置中心--客户端 配置中心的高可用 配置中心--服务端 配置中心--客户端 消息总线刷新配置 配置中心--服务端 配置中心--客户端 概述 因为微服务架构有很多个服务&#xff0c;手动一个一…

wireshark自定义协议插件开发

目录 脚本代码 报文显示 脚本代码 local NAME "test" test_proto Proto("test", "test Protocol") task_id ProtoField.uint16("test.task_id", "test id", base.DEC) cn ProtoField.uint8("test.cn", &qu…

同步加载、异步加载、延迟加载、预加载的区别

<link rel"preload" href"script1.js" as"script"> <link rel"preload" href"script2.js" as"script"> 同步加载&#xff1a;浏览器在遇到<script>标签时&#xff0c;会立即停止解析HTML&#…

【记录】Python|Python3程序测试速度的整个流程、方法对比和选取方式

参考&#xff1a;Python3.7中time模块的time()、perf_counter()和process_time()的区别 其他的博客太&#xff01;长&#xff01;了&#xff01;我实在看不下去了&#xff0c;每次都不记得什么场景用什么函数。 让我来用表格总结一下各个函数的使用场景、特性。 并附上分别的测…

【Java 基础】15 注解

文章目录 1.什么是注解2.元注解1&#xff09;定义2&#xff09;分类 3.内置注解4.自定义注解5.注解的基本语法6.验证注解是否生效7.注解的使用场景8.注解的注意事项结语 1.什么是注解 注解&#xff08;Annotation&#xff09;可以理解成一种特殊的 “注释” 注解定义时以 符号…

多线程06 单例模式,阻塞队列以及模拟实现

前言 上篇文章我们讲了wait和notify两个方法的使用.至此,多线程的一些基本操作就已经结束了,今天我们来谈谈多线程的一些简单应用场景. 单例模式 单例模式,顾名思义,只有一个实例的模式,我们有两种实现方式,分别是懒汉式和饿汉式,我们来分别给出代码. 饿汉式(此处的饿表示创建实…

json标签

json标签 json:"-" // 表示不进行序列化,忽略 json:"name,omitempty"//加上omitempty&#xff0c;可以在序列化的时候忽略0值或者空值&#xff1b;若要在被嵌套结构体整体为空时使其在序列化结果中被忽略&#xff0c;不仅要在被嵌套结构体字段后加json:“…

python程序内存泄漏的解决方法

笔者在实际应用过程中&#xff0c;利用python解析交易数据&#xff0c;其中的方法是对文件夹进行遍历&#xff0c;然后根据里面的每个文件进行单独的解析&#xff0c;也就是用到了多层循环&#xff0c;结果导致内存占用越来越大&#xff0c;以至于最终内存满了而程序崩溃退出。…

详解Spring中的Aop编程原理JDK动态代理和CGLIB动态代理

&#x1f609;&#x1f609; 学习交流群&#xff1a; ✅✅1&#xff1a;这是孙哥suns给大家的福利&#xff01; ✨✨2&#xff1a;我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 &#x1f96d;&#x1f96d;3&#xff1a;QQ群&#xff1a;583783…

yolov8模型 onnxruntime推理及可视化

参考:https://github.com/ultralytics/ultralytics/blob/main/examples/YOLOv8-ONNXRuntime/main.py 1、yolov8 onnxruntime推理代码 1)导出参考:https://blog.csdn.net/weixin_42357472/article/details/131412851 2)查看保存的模型onnx的输入格式等信息 登录https://n…

MATLAB算法实战应用案例精讲-【深度学习】卷积神经网络

目录 前言 卷积神经网络发展历程 基于深度学习的计算机视觉与卷积神经网络 几个高频面试题目