码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 2022-09-05 符号位、浮点数、原码、补码、反码、移码


    符号位、浮点数、原码、补码、反码、移码

    • 无符号数和有符号数
      • 无符号数
      • 有符号数
      • 浮点数
    • 真值、原码、补码和反码
        • 真值
        • 原码
        • 补码
        • 反码
        • 移码
      • 总结

    无符号数和有符号数

    无符号数

    无符号表示范围
    1个字节,十六位表示范围0x00~0xFF,十位表示范围0~255;
    2个字节,十六位表示范围0x0000~0xFF,十位表示范围0~65535。

    有符号数

    以最高位表示数字正负数,0位正,1为负;
    在这里插入图片描述

    小数点的位置以约定的位置,如4字节最高位表示符号位,剩余31位有8位指数位23位尾数位构成。

    浮点数

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    真值、原码、补码和反码

    真值

    也就是日常中使用的算数值1、-1、2、-2具有正负数的值;

    原码

    在计算机中完全是由0或1组成的,这里使用1个字节也就是8个bit进行表示;只用在正负数上与真值有较大的差异。原码是在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0,在原码中区分正负零),其余位表示数值的大小。

    例子:

    • 真值1,原码表示为0x00000001
    • 真值-1,原码表示为0x10000001
    • 真值2,原码表示为0x00000010
    • 真值-2,原码表示为0x10000010

    补码

    由于原码(+0=-0)在计算中不方便进行计算,则使用补码进行加法运算;补码正数则是自身,负数则是原码的取反加一。

    例子:

    • 真值1,原码0x00000001,补码表示为0x00000001
    • 真值-1,原码0x10000001,补码表示为0x101111111
    • 真值2,原码0x00000010,补码表示为0x00000010
    • 真值-2,原码0x10000010,补码表示为0x11111110

    1个字节计算:

    • (+2) + (-1)0x00000010 + 0x11111111 = 0x00000001,也就是1;
    • (+2)-(-1)则转变为(+2)+(+1)也就是将0x00000010 - 0x11111111转变为0x00000010 + 0x00000001=0x00000011,也就是3。

    将减法操作转为加法操作,进而简化cpu处理逻辑。

    反码

    反码(+0!=-0)与补码的区别在于原码进行转换时,只需要取反,不用加1。

    移码

    对于存在计算中的数字在进行比较大小时,如何区分1和-1的大小呢,所以就需要移码了,对于1个字节也就是8个bit表示为1和-1的补码,需要加2^8次方,再进行比较

    在这里插入图片描述

    也就是在符号位上加1,这样再进行数值比较时,就不会出错了

    在这里插入图片描述

    总结

    • 对于正数,原码=补码=反码
    • 对于负数,符号位为1,其数值部分(原码除符号位外每位取反末位加1 得补码;原码除符号位外每位取反 得反码)
  • 相关阅读:
    [leetcode 数位计算]2520. 统计能整除数字的位数
    120. 如何根据 SAP UI5 框架代码抛出的错误消息,反查出是哪一行代码引起的错误消息
    springboot实现邮箱发送(激活码)功能
    2-Dubbo架构设计与底层原理-SPI源码分析
    vue3视频大小适配浏览器窗口大小
    智能运维应用之道,告别企业数字化转型危机
    HDU 2602: Bone Collector ← 0-1背包问题
    MPLS VPN跨域C1方案 RR反射器
    记一次黑入盗号网站
    react兄弟组件传值之PubSubJS
  • 原文地址:https://blog.csdn.net/qq_19152901/article/details/126734485
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号