zoukankan      html  css  js  c++  java
  • java 数据类型之原码,补码,反码

    为了更清楚的理解一些数据运算,对数据的二进制表示要了解:

    1)原码表示法

        原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。设有一数为x,则原码表示可记作[x

        例如,X11010110

              X21001010

        其原码记作:

                X1=[1010110]=01010110

                X2=[1001010]=11001010

        原码表示数的范围与二进制位数有关。当用8位二进制来表示小数原码时,其表示范围:

          最大值为0.1111111,其真值约为(0.9910

          最小值为1.1111111,其真值约为(一0.9910

    当用8位二进制来表示整数原码时,其表示范围:

          最大值为01111111,其真值为(12710

          最小值为11111111,其真值为(-12710

          在原码表示法中,对0有两种表示形式:

              +0=00000000

               [0]=10000000

    2)补码表示法

        机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;(转自:图码网)如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。设有一数X,则X的补码表示记作[X

          例如,[X1]=1010110

                [X2]= 1001010

                [X1]=01010110

                [X1]=01010110

              [X1]=[X1]=01010110

                [X2]= 11001010

                [X2]=10110101110110110

        补码表示数的范围与二进制位数有关。当采用8位二进制表示时,小数补码的表示范围:

          最大为0.1111111,其真值为(0.9910

          最小为1.0000000,其真值为(一110

    采用8位二进制表示时,整数补码的表示范围:

          最大为01111111,其真值为(12710

          最小为10000000,其真值为(一12810

          在补码表示法中,0只有一种表示形式:

            [0]=00000000

            [0]=111111111=00000000(由于受设备字长的限制,最后的进位丢失)

    所以有[0]=[0]=00000000

    3)反码表示法

        机器数的反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。设有一数X,则X的反码表示记作[X

        例如:X11010110

              X21001010

            X1=01010110

             [X1]=X1=01010110

             [X2]=11001010

             [X2]=10110101

        反码通常作为求补过程的中间形式,即在一个负数的反码的未位上加1,就得到了该负数的补码。

    1. 已知[X]=10011010,求[X]

    分析如下:

    [X][X]的原则是:若机器数为正数,则[X]=[X];若机器数为负数,则该机器数的补码可对它的原码(符号位除外)所有位求反,再在未位加1而得到。现给定的机器数为负数,故有[X]=[X]1,即

              [X]=10011010

              [X]=11100101

         十)         1     

     

              [X]=11100110

     

     

    2. 已知[X]=11100110,求[X

             分析如下:

         对于机器数为正数,则[X=X

         对于机器数为负数,则有[X=[[X

    现给定的为负数,故有:

                X=11100110

            [[X=10011001

                  十)         1   

     

            [[X=10011010=X

  • 相关阅读:
    Vsftpd 3.0.2 正式版发布
    Putdb WebBuilder 6.5 正式版本发布
    SoaBox 1.1.6 GA 发布,SOA 模拟环境
    pynag 0.4.6 发布,Nagios配置和插件管理
    Percona Playback 0.4,MySQL 负荷回放工具
    xombrero 1.3.1 发布,微型 Web 浏览器
    Hypertable 0.9.6.4 发布,分布式数据库
    libmemcached 1.0.11 发布
    CryptoHeaven 3.7 发布,安全邮件解决方案
    Android Activity生命周期
  • 原文地址:https://www.cnblogs.com/zcftech/p/3133521.html
Copyright © 2011-2022 走看看