深入了解计算机系统 习题2.63

来源:互联网 发布:淘宝卖家退货率 编辑:程序博客网 时间:2024/05/21 11:17
#include <stdio.h>#include <limits.h>/*总体说明:逻辑右移和算数右移只有在最高位为1的情况下才会不同*/int sra(int x,int k){/*Perform shift logically*/int xshl=(unsigned)x>>k;int w=sizeof(int)<<3;/*核心运算*/(x&INT_MIN)&&(xshl|=(-1)<<(w-k));return xshl;}unsigned srl(unsigned x,int k){/*Perform shift arithmetically*/unsigned xsra=(int)x>>k;int w=sizeof(int)<<3;/*核心运算*/(x&INT_MIN)&&(xsra^=(-1)<<(w-k));return xsra;}

原创粉丝点击