2.62 判断机器是否进行算数右移

Posted lonelytraveler

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.62 判断机器是否进行算数右移相关的知识,希望对你有一定的参考价值。

//csapp 2.62

#include <stdio.h>                                                                                                                                                                 
//算数右移返回1,否则返回0
int int_shifts_are_arithmetic() 
{
    //return !~(-1>>1);
    unsigned int w = sizeof(int)<<3;
    return !~(1<<(w-1)>>(w-1));
}

int main(void)
{
    printf("expect:1, result:%d
", int_shifts_are_arithmetic());
}

以上是关于2.62 判断机器是否进行算数右移的主要内容,如果未能解决你的问题,请参考以下文章