滴水逆向联盟

标题: 整数在内存中的储存形式 [打印本页]

作者: 夺命书生    时间: 2014-11-21 08:37
标题: 整数在内存中的储存形式
本帖最后由 夺命书生 于 2014-11-21 08:41 编辑

   储存单位

       每个二进制位中存放 0 或  1 因此成为二进制位。
      大多数计算机把8个二进制位组成一个 字节 (byte)

       就称这台计算机字长为 16 位。

       若是整数最高位是 0 ,负数为 1


   存储方式
   1.正整数:用两个字节存放的最大正数 32768 在内存中为 0111111111111111
     第一个 0 是符号位,表示是正整数,二进制中的最大数为 1 ,除了符号
     位,其余的都是 1 ,就表示了16个二进制位(2字节)可以存放的最大数。
     相反,最小的正整数则全部为 0000000000000000


   2.负整数:在内存中是以正数的补码形式存放的。
     两个字节存放的最小整数是 -32768,在内存中的存储形式为:1000000000000000

     例如:例如从一个10进制正整数运算出,-10 二进制的补码形式。

      1. 把十进制的 5 用一个字节表示二进制数为:00000101

      2. 求 5 的反码,把其各位取反
         原码:00000101
         反码:11111010

      3. 求 5 的补码最低位加 1
         反码:11111010
               +      1
           ----------------------------
         补码: 11111011


      答案:5的二进制表示是:00000101,-5的二进制表示方法是:11111011


作者: 树袋老妖    时间: 2015-1-22 09:54
这个不错, 学习学习




欢迎光临 滴水逆向联盟 (http://www.dtdebug.com/) Powered by Discuz! X3.2