负数,小数转换二进制

news2024/11/24 2:39:09

负数转换二进制

例:在带符号整数signed char的情况下,-57如何被表示成负数呢?在计算机中又是如何计算66-57呢?

解析

考虑int占有32位太长,因此使用只占8位的signed char类型来举例。57用二进制表示位00111001(补足8位)。如何表示一个负数?可以使用最高位的一位来表示正负,0表示非负,1表示负数。

第一种方式是用除了第一位的数字表示这个负数的绝对值,第一位变成1。这样,-57表示为10111001.这种表示方式称为原码,不过计算机不使用这种方式表示负数。

第二种方式是将这个负数的绝对值的数全部取反,由1变为0,0变为1。这样,-57表示为11000110.这种表示方式称为反码。使用反码有一个问题:0有两种表示方式(全0和全1)。所以也不常用。

第三种方式是先计算这个负数的反码,然后加1,这样,-57表示为11000111.这是计算机使用的表示负数的方法,被称为补码。这种表示方式下,0只有1个,全1代表-1.

有了补码这种表示负数的方式,计算机就可以很方便地计算二进制减法了。例如要计算66-57时,可以认为是66+(-57)。66的二进制是01000010,-57的二进制是11000111,列竖式累加(其实就是异或运算,记得进位)。

由于这个数字溢出了8位,所以只取低位数的8位,得到的答案是00001001,也就是十进制下的9.

补码这种精妙的设计使得计算机可以化减为加。但是谈论到补码时必须要确定总位数。

小数转换二进制

例:3.14转换成二进制是多少呢?

解析

将实数从十进制转换为二进制,可以将整数部分和实数部分分别处理。整数部分的3是十进制的11,而小数部分的0.14处理方式如下:

将原来的小数数字,每次都乘2,如果得到的结果中整数部分是1,则答案记录一个1,并去掉这个整数部分,然后继续计算;如果得到的结果中的整数部分还是0,那么答案记录一个0,继续计算。

因此3.14表示为二进制数是11.001000011……,在二进制下是一个无限小数。因此,这就是为什么计算机浮点数类型无法精确表示很多实数的原因。

那么,如果将一个二进制小数转换为十进制呢?例如101.101,同样将整数部分和小数部分分开,整数部分十进制是5,小数部分的计算方式和整数转换方式差不多:1\times 2^{-1}+0\times 2^{-2}+1\times 2^{-3}=0.625。所以整个数的十进制就是5.625.

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

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

相关文章

【Mysql数据库基础04】连接查询、内连接、外连接

Mysql数据库基础04 0 该博客所要用的数据库表的属性1 SQL92 内连接1.1 等值连接1.1.1 两个表的顺序可以调换1.1.2 加筛选1.1.3 加分组1.1.4 加排序1.1.5 三表连接 1.2 非等值连接1.3 自连接 2 SQL99 内连接2.1 等值连接2.2 非等值连接2.3 自连接 3 外连接3.1 左外和右外连接 4 …

大模型主流微调训练方法总结 LoRA、Adapter、Prefix-tuning、P-tuning、Prompt-tuning 并训练自己的数据集

大模型主流微调训练方法总结 LoRA、Adapter、Prefix-tuning、P-tuning、Prompt-tuning 概述 大模型微调(finetuning)以适应特定任务是一个复杂且计算密集型的过程。本文训练测试主要是基于主流的的微调方法:LoRA、Adapter、Prefix-tuning、P-tuning和Prompt-tuning,并对…

网络原理(3)——TCP协议

目录 一、连接管理 二、三次握手 1、何为三次握手? 2、三次握手有何意义? 三、四次挥手 三次握手和四次挥手的相似之处和不同之处 (1)相似之处 (2)不同之处 四、TCP的状态 建立连接: 断开…

Matlab中inv()函数的使用

在Matlab中,inv()函数是用来求解矩阵的逆矩阵的函数。逆矩阵是一个与原矩阵相乘后得到单位矩阵的矩阵。在数学中,矩阵A的逆矩阵通常用A^-1表示。 什么是逆矩阵 在数学中,对于一个n阶方阵A,如果存在一个n阶方阵B,使得…

华为综合案例-普通WLAN全覆盖配置(1)

适用范围和业务需求 适用范围 本案例适用于大多数场景,如办公室、普通教室、会议室等普通非高密场景。 业务需求 主要业务需求如下: 接入需求 随时、随地无线业务接入。无线覆盖需要做到覆盖均匀、无盲区。 无线漫游需求 多层网络、快速切换、网络…

P1143 进制转换题解

题目 请你编一程序实现两种不同进制之间的数据转换。 输入输出格式 输入格式 共三行,第一行是一个正整数,表示需要转换的数的进制n (2≤n≤16),第二行是一个n进制数,若n>10则用大写字母A∼F表示数码10∼15,并且…

使用 GTSAM 进行曲线拟合的示例

GTSAM介绍 GTSAM(通用因子图优化库)是一种用于状态估计和传感器数据融合的开源C++库。它提供了强大的工具,用于在机器人和自主系统领域进行感知、决策和控制。 功能和特点 状态估计与优化: GTSAM 提供了灵活且高效的状态估计框架,能够处理从传感器获取的数据,并…

接口测试系列 —— 转转交易业务场景接口测试实践

01 Why接口测试 一、提高效率 关键词:QA 职责保质保量的完成需求测试工作在保证质量的前提下提高效率,要保证质量,首先需要先弄清楚这次需求的测试范围,针对性的使用不同的测试方法,而接口测试就是其中的一种&#x…

JMeter 并发测试和持续性压测详解

并发测试和持续性压测都是评估系统性能的常用方法,它们可以帮助开发人员发现并解决系统中的性能问题。本文来详细介绍下。 概念 并发测试: 旨在评估系统在同时处理多个用户请求时的性能。在这种 测试 中,系统会暴露于一定数量的用户负载下&…

Bito插件

此文档只作用于指导性工作,更多资料请自行探索。 1、插件安装与介绍 1.1 插件下载与安装 在idea中搜索:Bito Bito is also available for:​编辑VSCode​编辑JetBrains​编辑CLI 1.2 官方介绍 插件:ChatGPT GPT-4 - Bito AI Code Assista…

SQLiteC/C++接口详细介绍sqlite3_stmt类(五)

返回:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(四)- 下一篇: 无 12. sqlite3_bind_text16函数 sqlite3_bind_text16函数用于将UTF-16编码的文本数据(字符串)绑定…

推荐一款管理hosts文件的利器

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

windows下不同python版本切换

一、简介 有时候在windows环境下会安装很多个不同的Python版本,但是在运行一些特定环境时,又需要特定的python版本。于是就需要切换Python版本。 二、实操 右键“我的电脑”-》属性 右侧“高级系统设置” “高级”-》“环境变量” 双击“Path” 可以看到…

计算机视觉之三维重建(2)---摄像机标定

文章目录 一、回顾线代1.1 线性方程组的解1.2 齐次线性方程组的解 二、透镜摄像机的标定2.1 标定过程2.2 提取摄像机参数2.3 参数总结 三、径向畸变的摄像机标定3.1 建模3.2 求解 四、变换4.1 2D平面上的欧式变换4.2 2D平面上的相似变换和仿射变换4.3 2D平面上的透射变换4.4 3D…

深入浅出前端本地储存(1)

引言 2021 年,如果你的前端应用,需要在浏览器上保存数据,有三个主流方案: CookieWeb Storage (LocalStorage)IndexedDB 这些方案就是如今应用最广、浏览器兼容性最高的三种前端储存方案 今天这篇文章就聊一聊这三种方案的历史…

全球首例AI软件工程师Devin:Cognition AI引领智能编程新纪元

近日,初创企业Cognition AI震撼发布了全球首位AI软件工程师——Devin,这一开创性的突破标志着人工智能在编程与软件开发领域的应用迈上了全新的台阶。Devin以其卓越的计算机推理与规划能力,正在重新定义我们对软件工程实践的理解。 Devin&am…

软件设计师:03 - 数据库系统

一、数据模型的分类 1.1、概念数据模型 1.2、结构数据模型 1.3 真题 二、三级模式 概念模式对应的是基本表,概念模式也称为模式 外模式对应的是视图,也称用户模式或者子模式 内模式对应的是数据库里面的存储文件,也称存储模式 真题 三、两级…

漏洞发现-漏扫项目篇Poc开发Yaml语法反链判断不回显检测Yaml生成

知识点 1、Xray&Afrog-Poc开发-环境配置&编写流程 2、Xray-Poc开发-数据回显&RCE不回显&实验室 3、Afrog-Poc开发-数据回显&RCE不回显&JDNI注入 章节点: 漏洞发现-Web&框架组件&中间件&APP&小程序&系统 扫描项目-综合…

三连杆滑块机构运动学仿真 | 【Matlab源码+理论公式文本】|曲柄滑块 | 曲柄连杆 | 机械连杆

【程序简介】💻🔍 本程序通过matlab实现了三连杆滑块机构的运动学仿真编程,动态展现了三连杆机构的运动动画,同时给出了角位移、角速度和角加速度的时程曲线,除了程序本身,还提供了机构运动学公式推导文档…

防火墙互联技术

1.防火墙基础配置 2.配置防火墙远程管理 3.配置防火墙管理员角色 4.配置防火墙系统时钟 抓包