zoukankan      html  css  js  c++  java
  • 二进制 原码 反码 补码 小总结

    真的是出了校园就把知识还给老师了!!!  所以需要抽空来把一些知识捡起来~~

    机器数
    数字在计算机中的表现形式(二进制)叫做机器数,这个数有正负之分,在计算机中用一个数的二进制的最高位(符号位)用来表示它的正负,其中0表示正数,1表示负数。

    eg: 正数7,8位的二进制数来表示,是00000111,而负数-7,则用10000111表示,这里的00000111和10000111是机器数

    因为第一位是符号位,所以8位二进制数的取值范围就是:[11111111 ~ 01111111]  即 [-127 ~ 127]

    真数

    机器数对应的真实的值就是真数(二进制数换算成十进制得到的数字),对最高位(符号位)后面的二进制数转换成10进制,并根据最高位来确定这个数的正负。

    eg: 二进制数快速转换为十进制数,有个小窍门,11111111,从右到左依次代表 1,2,4,8,16,32,64,128   把对应位置上为1的数字相加起来就是 十进制的,比如 00001011就是1+2+8=11

    原码

    原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小

    反码

    正数的补码反码是其原码本身,负数的反码是原码符号位保持不变,其余位取反。

    eg:  正数1的原码是00000001,它的反码是是其本身00000001, -1的原码是10000001,其反码是11111110

    补码

    正数的补码是其原码本身,负数的补码是在其反码的基础上+1。

    eg:  正数1的原码是00000001,它的补码是其本身00000001, -1的补码是其反码11111110  + 1   =   11111111

  • 相关阅读:
    手脱ASPack2.12壳(练习)
    手脱UPX3.91壳(练习)
    如何在程序执行前插入可执行代码(算是吾爱的作业吧,活学活用)
    小米笔记本粉丝感恩狂欢趴【慎入!!】
    picpick截屏软件脱壳
    JAVA反序列化漏洞
    Java中的数据类型
    Java中常见的包
    Scrapy
    PHPstorm 函数时间注释的修改
  • 原文地址:https://www.cnblogs.com/xuchao0506/p/14989853.html
Copyright © 2011-2022 走看看