欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2023年计组实验datalabhandout实验报告.docx

    • 资源ID:72869575       资源大小:20.49KB        全文页数:5页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2023年计组实验datalabhandout实验报告.docx

    计算机组成实验实验1:实验题目:dalalab -handou t实验目的:根据b its. c中的规定补全其中的函数,并根据README中的规定在linux 环境下检测函数是否符合规定。实验环境:Ubuntu”. 04 x86系统in t tmp_mask 1 = (0 x 5 5) I (0 x 55<<8);i n t mask 1=( t mp_mas k 1 ) (tmp_maskl« 1 6);int tmp_mask2= ( 0x33) | ( 0 x 33<<8);in t m a s k2= (tmp_ma s k2) | (tm p _ma s k2<<! 6 );i n t t mp mas k 3=(0x0f) | (0x0f<<8);int ma s k 3 =(tmp_mas k 3) | (tm p _ma s k3<<16);int mas k4= (Oxff) | (0xff<<16);int mask5=(0xff) | ( 0 xff <<8);resu 1 t= (x&ma s k 1) + ( (x>> 1) &m a ski);re s ult=(result&mask2) +( (result>> 2 )&mask 2 );r es u 1 t = (re s u lt+ (r e s u lt»4) ) & ma s k3;r e sult=(res u lt+(r e sul t >>8) &ma s k4; result= (r e s u 1 t+(resu 1 t>>16)&mask 5 ;re t urn re s u 1 t ;)本题采用二分法,先计算x每两位中1的个数,并用相应的两位来储存这个个数。然后 计算每四位1的个数,再用相应的四位进行储存。依次类推,最后整合得到1 6位中1 的个数,即为x中1的个数并输出。i nt ba n g(i n t x ) return ( (x (x+l)>>31) & 1;)(x|(x+l)即当X为0时,结果为(000)2(3 1个0)。其余情况最首位均为1。因此 右移31位后再取反只有x=0时最后一位为1。再&1取最后一位。因此当x = 0时得到 1,其余情况得到0。i n t t min( v oid) r etu r n 1« 3 1 ;1<<3 1即(1 0 00)z(3 1个0)。其中1是符号位。即为负零,以表达最小的整数。int fits B its(int x, int n) int shi f tNum b e r =n+3 3 ;r eturn ! (x (x<<sh i ftNumber)»sh i ftNumber);)s hiftNumb e r=n+ 3 3 即为T-n + 33= 3 2 n, ( (x<<s h i ftNum b er)» s h i f t Nu mb er)即先左移3 2-n位,再右移32-n位,即保存最后n位数。在与x按位异或并 逻辑取反,若两者两同即x可被表达为一个n位整数,结果为! 0,即返回为1。两者不 同则不可表达为n位整数,结果为!(一个非零数),返回0。in t di v pw r 2 (int x , int n )i nt s i gn x =x»31;int mas k = (1 <Xn) + (0);i n t b i as = s i gn x &mas k ; re t urn (x+b i as)>> n ;signx=x>>31 为取 x 的符号位,mask= (1 «n)+ (0)即mask 等于 2n M bias=sign x&m a s k 即当 x 为正数,si g nx= 0 , b ia s 为 0, x 为负数,s i gnx=ll, bia s =m as k o (x+bi a s ) >>n当x为正数即x»n,得到结果符合规定。当x为负数时,需要 加上偏置量2皿得到预期结果,因此加上sign x,得到结果符合规定。i n t n ega t e (int x )r eturn x+1;)x+1即-1-x+1=X。得到结果对的。int is P o sit ive(i n t x) r e tu r n ! (x>> 3 1) | (! x );/re t urn (x>>31)&! x)(x>>31)即取x的符号位,!x为逻辑取反,当x = 0时! x=l,其他情况均为0. (x »31) |(! x)即当x=0时得到1, x为负数得到l,x为正数得到0。再进行逻辑取 反,即当x为正数时返回1 , x为0或负数时返回0oi nt isLessOrE q ual (int x , in t y) int sig nx = x»3 1 ;判断符号int s igny=y>>3 1 ;in t signSam e = (x+(y) ) >>31) | (! (signxsi g n y ) );/判断是否小于等于i nt signD i ffe r =signx&(! si g ny);r e t u rn si g n D i f fer | signSame;i n t sx=! (x»3 1 ) ;/ /判断符号int s y= ! ! ( y >>31);int z = y+(x+l);/y-xint s= ! (z>> 3 1);ret u r n ( ! (sx 人 s y)&s) | (s x ' sy)&sx);/* in t d i fferen c e=(x+l)+y; /*yx*/r e turn ( (x&y ) | (x& diff erence) I (y&diff e r e n ce) ) »31&0 x 1; /*通过x, y , diff e r ence的卡诺图求解*/*/补码=反码+1前两步取x、y的符号位,第三步中(x+ (y)>>3 1为当x-y-1为负数时取1 , ! (signx-signy)为两者相同时取1,两者相或即x< = y时s i gnSame为1,第四步即当 x<O,y> 0时s ignDiffer为1。最后一步即当x<0, y>0时必返回1,其余情况则x < =y返回1。效果即为假如x 仁y,则返回1,否则返回0。in t ilog2 (i n t x) i n t bi t sNum b e r = 0 ;b itsN u m b er=(! ! (x>>16) )« 4 ;bitsNumber= b its Number+ (! (x» (b i t s N u mb e r+ 8 ) «3);bitsNu m b er=bitsN u mber+(! (x»(bit s N u mb e r +4) << 2);bitsNu mber= b itsNumber+ (! (x>>(b i t sNu mber+2) « 1 );bit s Numbe r =bi t sN u mb e r+(! (x» (bitsNumbe 147 r +1); bits Numbe r =b its Numb e r + (! bi tsNumbe r ) + ( 0 ) + (!(lx); r e turn b itsNumb e r;/* i n t i 1 o g2(int x )jx = x>>1 ;/*通过计算把 1 右移到的次数来实现i log2的函数文/x= X | X >> 1 ;x=x| x >> 2 ;x= x | x >>4;x = x I x>> 8 ;x=x| x >> 1 6;/*运用或和右移,把1后的所有0变为1*/,i n t c o unt=0 ;int n=0xl I 0xl<<8|0x 1« 1 6|OX1«24;c o unt+= x & n ;count+=x>> l&n; j c o unt+=x»2& n ;c o u n t+ = x>>3&n;jcount + = x>>4&n; j count+=x>>5&n;count += x >>6& n ;count+= x > > 7 &n;ret u rn ( c ou n t &0xf)+ (count»8& 0 xf) + (co u nt>>16& 0 x f ) + ( c ount»24 &0xf) ; / * 即BitCo u n t 函数 */*/本题与bitcout的方法相似,也为二分法。bi t sNumber=(!(x»l 6 ) )。4即x向右移1 6位后若若大于0即得到(1 0 00 0% = 16,否则得到0。这是判断最高位是否不为0,若不为0则包含2的16次方。即得 到最高位的1 o g数。同理 bitsNum b e r = b itsNumber+ (! (x>>(bi t sNumber+8) << 3 );bi t sNumb e r= b i t s N u mber+ (! (x» (bit s Num b er+4) ) ) «2); bits Number= b itsN u mber + (! ! ( x >> (bi t s Number+2) <<1);bitsNumber=bitsNumber+(! ( x »(bit s Num b er+1);为判断从高到底各位的log情况,这个方法将每位分开求1 o g并相加。bits Number=bi t s Numb e r+(! IbitsNumbe r )+ (0) +(! (l'x);这一句是当x为零时,还需要减去1才干得到对的的数值。un s i g ned float n eg(unsigne d uf)unsi g ne d r e suit;uns i g n e d t m p ;t mp = uf& (0x7ff f f fff);resu 1 t=uf *0x8 0 0 0 0 0 0 0;if (tm p>0x7f 8 00000)resu 1 t =uf;ret u rn resu 1 t;)tmp = uf& (0x7ff f f f f f)为将uf的符号位改为0。r e su 1 t =u f 人 0 x80 0 0 0000即当u f不是NAN,通过加0 x 80 0 0 0 000来改变符号位。i f (tmp>0x7f8 0 00 0 0)res ult=uf;Ox 7 f8 0 00 0 0即无穷大,假如imp的值比无穷大还大,那就是NAN,则返回u f。unsigned f lo a t_i 2 f (int x) uns igned s h ift L eft=0;un s i g n e d afterShift, t mp, fl a g; /定义尾数,进位数unsigned absX= x;/ /unsigned sign= 0 ;i f (x=0) r eturn 0;i f (x<0)(s ign=0x80000 0 00;ab s X 二一x;)a f te r S h ift=a b s X;while (1)(t mp=af t e rSh ift;a f t e r S h i f t <<= 1;s h if t Le f t+;if ( t mp & Ox 8 000 0 0 0 0) break;)if (aft erShift & 0x0 Iff) >0 xOlOO)f 1 a g = 1 ;el s e if (af t e r Shift & 0x03f f) =0x0300)f 1 a g= 1 ;elseflag=0;r e turn sign + (after S h ift>>9) + (15 9-shif t Left) <<23) + fl a g;)本题没有理解,都是用的网上的代码。u n s i g nod floa t _twi c e( u n s i gncd u f) u n s igned f= u f ;i f (f & 0x7F8 00 0 00) = 0) f = (f & 0x0 0 7FFFFF) <<1) | (0x8000000 0 & f); el s e i f (f & 0x7F8 0 0000) ! = 0 x7F 8 0 00 0 0) f =f+0x 0 080 0 0 0 0;r eturn f;)第一个if语句判断非规格化的数。其中(f& 0 x0 0 7 FFFFF)。作用为令符号位和阶码 被屏蔽,令尾数左移。(0 x8 0 000000 & f)是将符号位恢复。第二个else i f语句判断即为规格化数。f= f +0x00800000即若是规格化数,对它的 阶码加1。假如都不满足的话最后会返回uf本来的值。实验结果及分析:sunlightubuntu: File Edit View Search Terminal Help sunlightubuntu:$ ./die bits.c /usr/include/stdc-predef.h:l: Warning: Non-includable file <command-line> included from includable file /usr/tnclude/stdc-predef.h.Compilation Successful (1 warning)sunltghtubuntu:$ ./die -e bits.c/usr/tnclude/stdc-predef.h:1: Warntng: Non-includable file <command-ltne> included from includable file /usr/include/stdc-predef.h.die:bits.c:142:bitAnd: 4 operatorsdlc:btts.c:154:getByte: 3 operatorsdie:bits.c:166:logicalShift: 6 operatorsdie:bits.c:201:bitCount: 33 operatorsdie:bits.c:211:bang: 6 operatorsdlc:btts.c:220:tmtn: 1 operatorsdie:bits.c:233:fitsBits: 6 operatorsdie:bits.c:249:divpwr2: 7 operatorsdie:bits.c:259:negate: 2 operatorsdie:bits.c:269:isPositive: 4 operatorsdie:bits.c:283:isLessOrEqual: 11 operatorsdlc:btts.c:303:tl.og2: 35 operatorsdie:bits.c:323:float_neg: 3 operatorsdie:bits.c:363:float_i2f: 16 operatorsdie:bits.c:388:float_twtce: 9 operatorsCompilation Successful (1 warning)sunlightubuntu:$根据检测可知,编译通过,并且具体操作步数均低于上限。符合规定。实验内容及操作环节:in t bitAnd(in t x, int y) r e t u rn( (x) | ( y );)运用了德摩定律,(x)| (y) ) = C (x)& ( (y) =x&yoint g e tBy t e(int x, int n) return (x>>(n<<3)&25 5 ;)要从x中提取一个字节,而字节编号为03。一个字节为8位2进制。n«3即为n*8位。x»(n Vv3)即为x只保存下除去最后n* *8位剩下的部分。再&2 5 5则只保 存剩下的最右一个字节。得出的结果便为编号指定要提取的那个字节。int logi cal Shift (int x, in t n) int mask = ( 1 <<31) >>n) <<1);retu r n mask&(x>>n);)( (1<<3 1 )>>n)<<l)即为 2 3 2-n-l,也就是 mask=(0 0 0011 1 11-1)2 (n 个 0,31- n个1) o再mas k & (x»n)即为将x算术右移n位后并上m a sk这个前n位 为0的掩码,使当x为负数时位移补1换为补0。int bitC o u n t (int x) i n t r e s u It;

    注意事项

    本文(2023年计组实验datalabhandout实验报告.docx)为本站会员(太**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开