zoukankan      html  css  js  c++  java
  • 家庭作业

    家庭作业

    第二章

    2.62

    分析:判断x移位之后是否还是全为1

    bool int_shifts_are_logical()  
    {  
        int x = ~0x00;  
        x >>= 1;  
        return ~x;  
    }  
    

    2.71

    A. packed_t是无符号数,而它包装的4个字节都是有符号数,1byte的包装在无符号数中的有符号数扩展后符号位并没有扩展。例如,1byte的0xFF表示-1,而扩展成32位后应该为0xFFFFFFFF。而按照原函数中所示,扩展后结果是0x000000FF

    B.

    int xbyte(packed_t word , int bytenum)
    {
        return (word << ((3 - bytenum) << 3)) >> 24;
    }
    

    2.79

    int fiveeighths(int x)  
    {  
        int w = sizeof(int) << 3;    
        int x_lmb = x >> (w - 1);    
        x_lmb && (x = x + 7);    
        x = x >> 3;        
        return x + (x << 2);  
    }  
    

    2.80

    A. ~((1 << n) - 1) 【注意此时0<n<w】

    B. ~(~0 << n) << m

    2.83

    浮点数最高位为符号位。

    先处理-0、+0比较的情况:

    !(ux<<1)&&!(uy<<1)

    x为正,y为正:

    (!sx && !sy && (ux >= uy))

    x为负,y为负:

    (sx && sy && (ux <= uy))

    x为正,y为负:

    !sx&&sy

    以上式子使用||连接起来就是最终答案:

    (!sx && sy) || (sx && sy && (ux <= uy)) || (!sx && !sy && (ux >= uy))

    2.84

    A. E = 2; M = 5/4; f = 1/4; V = 5.0

    B. n位小数全为1。 E = n; M = 2 - 1/(2^n); f = 1 - 1/(2^n); V = 2^n * ( 2 - 1/(2^n) ) = 2^(n + 1) - 1

    C. 最小规格化数: E = 2 - 2^(k - 1); M = f = 2^(-n); V = 2^E * M; 倒数为1/V

    2.86

    Hex M E V
    0x8000 0 -62 -
    0x3f01 257/256 0 257*2^(-8)
    0x4700 1 8 -
    0x00ff 255/256 -62 255*2^(-70)
    0xff00 - - -
    0x3aa0 416/256 -5 416*2^(-13)

    2.87

    1 01110 001  -9/16 1 0110 0010 -9/16
    0 10110 101 208 0 1110 1010 208
    1 00111 110 -7/1024 1 0000 0111 -7/1024
    0 00000 101 

    6/2^17

    0 0000 0000 0
    1 11011 000  -2^12 1 1111 0000 负无穷
    0 11000 100 768 0 1111 0000 正无穷
  • 相关阅读:
    树世界
    清空 NumericUpDown
    没有评论的日子
    GetData.cs

    Hashtable 在程序中控制重复项
    Convert.ToInt32() VS System.Int32.Parse()
    饮食九要素
    添加 or 修改 的一个处理方式
    一个关于 电话号码 的正则表达式
  • 原文地址:https://www.cnblogs.com/sjy519/p/6106962.html
Copyright © 2011-2022 走看看