csapp2e homework 2.77
#include<stdio.h> #define debug_print(x) printf(#x"\t%d\n",x) int divide_power2(int x,int k) { int w = sizeof(int) << 3; int sign = x >> (w - 1) ; int result; ( sign == 0 && (result = (x >> k)) ) || ( sign == -1 && (result = ((x + (1 << k)-1)>> k)) ); return result; } int main() { debug_print(100>>3); debug_print(divide_power2(100,3)); debug_print(-100>>3); debug_print(divide_power2(-100,3)); return 0; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。