计组实验2报告
课程试验报告
课 程 名 称: 计算机 的个数; 四个字节的值相加,即x 四个字节上1 的个数的和,保存 最低字节的信息,为最终结果。 #代码: int bitCount(int x) { int tmp=(((0x011); //检测x 的1,9,17,25 位是否为1 val+=tmp&(x>>2); //... val+=tmp&(x>>3); val+=tmp&(x>>4); val+=tmp&(x>>5); val+=tmp&(x>>6); val+=tmp&(x>>7); //检测x 的7,15,23,31 位是否为1 val+=(val>>16); //将val 的高16 位加到低16 位上 val+=(val>>8); //再将val 的高8 位加到低8 位上 return val&0xff; //保存val 的最低byte 信息为最终结果 } (5).bang 函数,要求如下: /* * bang - Compute !x without using ! * Examples: bang(3) = 0, bang(0) = 1 * Legal ops: ~ & ^ | + * Max ops: 12 * Rating: 4 */ #题目说明:不施用!符号实现!x的功能〔即!0=1,!(other number)=1〕; #思路: 1. 0的相反数仍为0。 〔原数和相反数势必符号位是其中1个为0,另一个为1〕; ; 0原数和相反数相或的结果符号位势必为0;
依次累加得出结果ret。 #代码: int ilog2(int x) { int s,s1,s2,s3,s4,s5; s=!!(x>>16); //判定最高位是否在高16 位上 s1=s=s1; //x 相应右移 s=!!(x>>8); //判定最高位是否在高8 位上 s2=s=s2; //x 相应右移 s=!!(x>>4); //... s3=s=s3; s=!!(x>>2); s4=s=s4; s=!!(x>>1); s5=s; //最终一位 return s1+s2+s3+s4+s5;//累加得出结果 } 〔13〕. float_neg函数,要求如下: /* * float_neg - Return bit-level equivalent of expression -f for * floating point argument f. * Both the argument and result are passed as unsigned int's, but * they are to be interpreted as the bit-level representations of * single-precision floating point values. * W
计组实验2报告 来自淘豆网m.daumloan.com转载请标明出处.