整数的表示和运算

目录

无符号整数

有符号整数

原码表示

原码的缺点 

原码-->反码-->补码的转换

原码,补码快速转换技巧(手算) 

补码的加法计算

补码的减法计算

总结


无符号整数

无符号整数,即"自然数",0,1,2,3,4,....

C语言中的无符号整数:

unsigned short a = 1; //无符号整数 短整型 2Byte
unsigned int b = 2;//无符号整数 整形  4Byte

无符号整数,在计算机硬件内,如何表示?

无符号整数的加法,减法运算是怎么用硬件是实现的?

Tips:现在的个人计算机机器字长通常是64位或至少32位

本文以8位机器为例子,因为看起来更方便

无符号整数:

  1. 全部二进制位都是数值位,没有符号位,第i位的位权是2^(i-1)
  2. n bit 无符号整数表示范围0~2^n - 1(为什么是这个是因为2^0+2^1+2^2+...等比数列求和),超出则溢出,意味着该计算机无法一次处理这么多
  3. 可以表示的最小的数全0,可以表示的最大的数全1

但是减法可不是日常一样了

为什么我们要这样处理减法?Tips:加法电路造价便宜,减法电路造价昂贵.若可将减法转变为加法,省钱!

为什么是按位取反 末尾+1==>可以自主学习数论知识

有符号整数

以机器字长8bit为例:

原码表示

原码:

1.符号位"0/1"对应"正/负",剩余的数值位表示真值的绝对值

2.若机器字长n+1位,带符号整数的原码表示范围:-(2^n-1) <= x <= (2^n-1)

3.真值0有两种形式:+0 和 -0,[+0]原 = 0,0000000;[-0]原=1,0000000

常见书面写法:x = 19  [X]原 = 1,0010011  若未指明机器字长,也可以写成[X]原 = 1,10011

原码的缺点 

用补码表示真值--符号位可以参与运算

原码-->反码-->补码的转换

计算机中补码-->原码(补码取反 末尾+1) 

原码,补码快速转换技巧(手算) 

补码的加法计算

补码的减法计算

其实也可以用我们之前讲的那个方法找到最右边的1 然后前面所有数字(包含符号位)全部取反,其余不变

总结

Tips:计算机内部,所有带符号整数的加减法都要先转化为补码

原码反码补码的特性对比

各种码的基本特性总结

带符号整数 - 移码表示

移码只能用于整数,而原反补码也可以用于小数

同时若机器字长n+1位 ,移码整数的表示范围:[-2^n <= x <= 2^n-1] (和补码相同)

相比于原码和反码来说,移码可以多表示一个负数-128 ~ 127 

移码 : 00000000 ==> 0  11111111 ==> 255

所以移码通常用于浮点数的阶码当中

几种码表示整数

练习:

答案:

关于移码到底有什么作用我们还会在浮点数章节进行学习

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

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

相关文章

前端初学者的 CSS 入门

文章导读&#xff1a;AI 辅助学习前端&#xff0c;包含入门、进阶、高级部分前端系列内容&#xff0c;当前是 CSS 的部分&#xff0c;瑶琴会持续更新&#xff0c;适合零基础的朋友&#xff0c;已有前端工作经验的可以不看&#xff0c;也可以当作基础知识回顾。 从这篇文章开始…

OneFlow深度学习框架入门与实践

OneFlow深度学习框架入门与实践 一、引言 在深度学习领域&#xff0c;框架的选择对于研究人员和开发者至关重要。OneFlow作为一款新兴的深度学习框架&#xff0c;凭借其高性能、易用性和灵活性&#xff0c;逐渐在业界崭露头角。本文将带领大家深入了解OneFlow深度学习框架&am…

Spark Stream

一、Spark Streaming是什么 Spark Streaming 用于流式数据的处理。Spark Streaming 支持的数据输入源很多&#xff0c;例如&#xff1a;Kafka、Flume、Twitter、ZeroMQ 和简单的 TCP 套接字等等。数据输入后可以用 Spark 的高度抽象原语如&#xff1a;map、reduce、join、wind…

React 第十七章 Hook useRef

React中的useRef是一个Hook函数&#xff0c;它可以用来在函数组件中创建一个可变的引用。它类似于类组件中的ref属性&#xff0c;但有一些不同之处。 useRef可以用来保存任意可变值&#xff0c;而不仅仅是DOM元素的引用。它可以在函数组件的多次渲染之间保持不变。 使用useRe…

C++ | Leetcode C++题解之第67题二进制求和

题目&#xff1a; 题解&#xff1a; class Solution { public:string addBinary(string a, string b) {string ans;reverse(a.begin(), a.end());reverse(b.begin(), b.end());int n max(a.size(), b.size()), carry 0;for (size_t i 0; i < n; i) {carry i < a.siz…

算法学习系列(五十五):背包模型(三)

目录 引言一、潜水员二、背包问题求具体方案三、机器分配四、开心的今明五、金明的预算方案 引言 今天介绍的是背包模型&#xff0c;还是以题目的形式来介绍的。主要讲了背包问题求方案&#xff0c;就是由最优方案递推回去即可。还有就是一些比较经典的背包问题&#xff0c;其…

im即时通讯源码/仿微信app源码+php即时通讯源码带红包+客服+禁言等系统php+uniapp开发

即时通讯(IM)系统是现代互联网应用中不可或缺的一部分&#xff0c;它允许用户进行实时的文本、语音、视频交流。随着技术的发展&#xff0c;IM系统的功能越来越丰富&#xff0c;如红包、客服、禁言等。本文将探讨如何使用PHP语言开发一个功能完备的即时通讯系统&#xff0c;包括…

逻辑漏洞:Cookie脆弱性导致的逻辑漏洞

前几天学习了逻辑漏洞中的越权漏洞和支付漏洞&#xff0c;今天学习一下cookie脆弱性导致的逻辑漏洞 还是和之前一样&#xff0c;所有内容都是参考别的大佬总结好的&#xff0c;我只是在这里进行学习练习 1、cookie介绍 用户在客户端 (一般为浏览器) 中访问某个页面 &#xff0…

电脑崩溃了,之前备份的GHO文件怎么恢复到新硬盘?

前言 之前咱们说到用WinPE系统给电脑做一个GHO镜像备份&#xff0c;这个备份可以用于硬盘完全崩溃换盘的情况下使用。 那么这个GHO镜像文件怎么用呢&#xff1f; 咱们今天详细来讲讲&#xff01; 如果你的电脑系统硬盘崩溃了或者是坏掉了&#xff0c;那么就需要使用之前备份…

华为机考入门python3--(20)牛客20- 密码验证合格程序

分类&#xff1a;字符串 知识点&#xff1a; 遍历字符串的每个字符 for char in my_str: 可以直接比较字符范围 a < char < z 列表统计元素个数 my_list.count(elem) 寻找子串 my_str.find(sub_str) 题目来自【牛客】 import re import sysdef check_…

【算法】唯一分解定理及最lcm和gcd关系 宝石组合

前言 今天在做一道宝石组合的题目时了解到了这个定理&#xff0c;还是蛮有意思的。 思想 唯一分解定理&#xff1a; 对于任何正整数n&#xff0c;有 n p 1 a 1 p 2 a 2 . . . p k a k n p_1^{a1} \times p_2^{a2} \times ... \times p_k^{ak} np1a1​p2a2​...pkak​ …

C语言零基础快速入门视频教程

C语言零基础快速入门视频教程 介绍C语言C语言零基础视频教程领取教程下期更新预报 介绍C语言 C语言零基础快速入门&#xff1a;探索C语言的起源、特性与魅力 在编程世界中&#xff0c;C语言犹如一座古老而坚实的桥梁&#xff0c;连接着计算机科学的过去与现在。作为一门历史悠…

C++泛型算法2——谓词,lambda表达式

定制操作 很多算法都会比较输入序列中的元素。 默认情况下&#xff0c;这类算法使用元素类型的<或运算符完成比较。 标准库还为这些算法定义了额外的版本&#xff0c;允许我们提供自己定义的操作来代替默认运算符。 例如&#xff0c;sort 算法默认使用元素类型的<运算…

家庭用水安全新举措:保障自来水管和储水设施卫生

随着公众对家庭用水安全意识的提高&#xff0c;如何确保自来水管和楼顶储水罐的安全性和卫生已成为家庭生活中的重要议题。近期&#xff0c;专家针对此问题提出了一系列实用的注意事项和建议。 注意事项&#xff1a; 定期检查&#xff1a;专家强调&#xff0c;家庭应每季度至…

分布式事务—> seata

分布式事务之Seata 一、什么是分布式事务&#xff1f; 分布式事务是一种特殊类型的事务&#xff0c;它涉及多个分布式系统中的节点&#xff0c;包括事务的参与者、支持事务的服务器、资源服务器以及事务管理器。 在分布式事务中&#xff0c;一次大型操作通常由多个小操作组成…

如何查公网IP?

在网络通信中&#xff0c;每个设备都被分配一个独特的IP地址&#xff0c;用于在Internet上进行标识和通信。公网IP是指可以直接从Internet上访问的IP地址&#xff0c;也称为全局IP。通过查公网IP&#xff0c;我们可以了解我们的设备在Internet上的位置和连接状态。 2. 查公网IP…

vue3使用echarts做树图tree

vue3使用echarts做树图tree 1.安装echarts npm install echarts --save2.在main.js引入 import * as echarts from echarts // 全局方法 app.config.globalProperties.$echarts echarts3.使用 <div id"myChart" :style"{ width: 1000px, height: 1000px …

基于springboot的社区医院信息平台源码数据库

基于springboot的社区医院信息平台源码数据库 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了社区医院信息平台的开发全过程。通过分析社区医院信息平台管理的不足&#xff0c;创建了一个计算机管理社区医院信息平…

Django后台项目开发实战五

完成两个功能&#xff1a; HR 可以维护候选人信息面试官可以录入面试反馈 第五阶段 创建 interview 应用&#xff0c;实现候选人面试评估表的增删改功能&#xff0c;并且按照页面分组来展示不同的内容&#xff0c;如候选人基础信息&#xff0c;一面&#xff0c;二面的面试结…

笨蛋学C++【C++基础第九弹】

C基础第八弹 5.C模板函数模板类模板 6.C预处理器#define 预处理参数宏条件编译# 和 ## 运算符C 中的预定义宏 7.C信号处理signal() 函数raise() 函数 5.C模板 模板是泛型编程的基础&#xff0c;泛型编程即以一种独立于任何特定类型的方式编写代码 函数模板 语法&#xff1a; …