负整数

正整数直接按照源码存储,负整数按照补码存储。

原码、反码、补码

首先要清楚原码、反码、补码:
计算机中一个字节为8位,在此以一个字节为例:
原码:
十进制1:0000 0001
十进制-1:1000 0001(负数的符号位为1)
反码:
十进制1:0000 00001
十进制-1:1111 1110(除符号位外,其余反转)
补码:
十进制1:0000 00001
十进制-1:1111 1111(负数的补码为负数的反码+1)
因此,正数的原码、反码、补码相同,负数的原码、反码、补码各不相同。

反码、补码作用

引入补码,是为了计算负数的加法,也可以看做减法。比如10-1,如果按原码计算的话:
(0000 1010 + 1000 0001) = 1000 1011 = -11,错误。
因此需要使用补码进行计算:
(0000 1010 + 1111 1111) = 1 0000 1001 = 0000 1001 = 9。
引入反码、补码是为了更容易的计算减法。可以将减法看做加一个负数,然后取负数的补码进行计算。
计算机以补码的形式存储小数。

范围

对于单字节无符号整形,占8位,范围为:0000 0000~1111 1111,即0~255。
对于单字节有符号整形,占8位,正数范围为:0000 0001~0111 1111,即1~127,
              负数范围为:1000 0001~1111 1111,即-1~-127。

小数

参考:
https://blog.csdn.net/ACdreamers/article/details/19012279?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.control&dist_request_id=1328603.58325.16151918506269985&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.control
小数的整数、小数部分分别用二进制表示:
如6.75转换为二进制:6转换为0110,0.75转换为:11。所以6.75可以表示为(0110.11)2

小数的存储

小数的存储分为3位:符号位、指数位、尾数位。
符号位:0:正数,1:负数
指数位:127+指数转为二进制数
尾数为:小数转为二进制数后,用科学计数法表示后的尾数
  如173.8125转换为二进制:10101101.1101,用科学计数法表示为:1.01011011101*10^7。则符号位为0,指数位为:(127+7)2,即10000110,尾数位为:01011011101。则173.8125在计算机中存储为:
0 1000 0110 0101 1011 1010

C++负数、小数如何保存相关推荐

  1. C++四则运算(带负数小数,不含大数)

    思路就是定义运算符栈和操作数栈,用逆波兰式的思想完成四则运算 细节: 1.用map标记运算符优先级,用stringstream从字符串中读取操作数 2.stringstream可能有无法分辨字母和数字 ...

  2. Java程序和MySQL数据库中关于小数的保存问题

    文章目录 MySQL 中的小数类型 decimal double float Java 中的小数类型 float double BigDecimal 金额的计算 MySQL 中的小数类型 decima ...

  3. 计算机中浮点数的表示及正负数小数的反码补码

    1. 计算机中浮点数的表示 计算机中浮点数用科学计数法来表示,分尾数.指数.阶码3部分. 阶符:指数的正负号.占1位,负为1正为0. 任意一个二进制数N,N=2P×S,其中S为尾数,P为阶码,阶码为固 ...

  4. [数制与码制]: 有关十进制转换和二进制负数小数补码表示

    文章目录 关于十进制转换 关于二进制负小数补码表示 关于十进制转换 数电第一课,关于各进制数的转换:2,8,16进制的转换也不用说什么,主要是关于10进制转换其他进制会麻烦一点: 而在这之间,由其他进 ...

  5. liunx php apache2,linux apache2部署php

    android-plugmgr源代码分析 android-plugmgr是一个Android插件加载框架,它最大的特点就是对插件不需要进行任何约束.关于这个类库的介绍见作者博客,市面上也有一些插件加载 ...

  6. Java基本语法和规范

    Java基本语法和规范 语言按程序的执行方式分为编译型和解释型两种. 编译型:需要使用专门的编译器,针对特定平台(操作系统)翻译成可被该平台执行的机器码,编译生成的可执行程序可以脱离开发环境在特定平台 ...

  7. 计算机中浮点数的表示,浮点数在计算机中的表示

    浮点数在计算机中的表示 最后编辑于:2010-4-13 计算机中数字是以0和1二进制保存的,我们熟悉的是整数的如何在计算机中表示,那么浮点数是如何表示的呢? 一.    转换 我们先来看看如何将十进制 ...

  8. 102道java算法

    1:奥运奖牌计数 import java.util.Scanner; //输入n+1行,第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金.银.铜牌数目,以一个空格分开 //输出1 ...

  9. Web网站测试流程和方法(转载)

    1测试流程与方法 1.1测试流程 进行正式测试之前,应先确定如何开展测试,不可盲目的测试.一般网站的测试,应按以下流程来进行: 1)使用HTML Link Validator将网站中的错误链接找出来: ...

最新文章

  1. STM32 电机教程 15 - BLDC 速度环内嵌电流环
  2. RxSwift之深入解析map操作符的底层实现
  3. python自动化开发例子_Python自动化开发从浅入深-语言基础(常用模块)
  4. 精彩回顾|2021 中国 .NET 开发者峰会
  5. DateFormat(炸窝)
  6. git统计当前项目代码行数
  7. Centos7-Mysql-5.6.41一主两从的搭建
  8. python2.7初学(〇)
  9. mysql备份恢复中的常见错误
  10. matlab_exercise(2)----输入一个三位数,依次输出其个位数字,十位数字,百位数字...
  11. VC Studio集成开发环境下编译Apache--jin点滴实验手记
  12. window下的批处理命令学习
  13. 修改word默认模板(Normal.dotm)
  14. Why Service Mesh
  15. 生存分析-Cox回归模型
  16. html5游戏 美术,cocos2d-html5游戏学习之绘画小熊
  17. 清默网络——动态访问列表
  18. 《指数基金投资指南》读书笔记---指数基金的分类
  19. 【STM32H7教程】第52章 STM32H7的LTDC应用之点阵字体和字符编码(重要)
  20. 给定两点确定一条直线

热门文章

  1. 利用牛顿法求平方根-Go语言实现
  2. HA: Forensics靶机渗透测试
  3. 【J2SE】学习基础
  4. 【Sql Server】DateBase-触发器
  5. PyTorch之前向传播函数自动调用forward
  6. Python第三方库jieba(中文分词)入门与进阶(官方文档)
  7. LeetCode简单题之最长回文串
  8. 处理器解决物联网和人工智能的融合
  9. 用NVIDIA-TensorRT构造深度神经网络
  10. Mobileye 自动驾驶策略(二)