19£®Ð´³ö16λÊý¾ÝµÄSECÂë¡£¼Ù¶¨Êý¾ÝΪ0101 0001 0100 0110£¬ËµÃ÷SECÂëÈçºÎÕýÈ·¼ì²âÊý¾Ýλ5µÄ
´íÎó¡£ ²Î¿¼´ð°¸£º
¶ÔÓÚ16λÊý¾Ý£¬¿ÉÒÔÈçϲåÈëУÑéλ£º M16M15M14M13M12P5M11M10M9M8M7M6M5P4M4M3M2P3M1P2P1
ÆäÖÐMiÊÇÔÐÅÏ¢Êý¾Ý£¬ PiÊǼÓÈëµÄУÑé룬¶ÔÓÚ¸÷¸öУÑéλµÄÖµ¿ÉÒÔÈçϼÆËã
P1 = M1¨’M2¨’M3¨’M4¨’M5¨’M7¨’M9¨’M11¨’M12¨’M14¨’M16= 1 P2 = M1¨’M3¨’M4¨’M6¨’M7¨’M10¨’M11¨’M13¨’M14= 1 P3 = M2¨’M3¨’M4¨’M8¨’M9¨’M10¨’M11¨’M15¨’M16= 0 P4 = M5¨’M6¨’M7¨’M8¨’M9¨’M10¨’M11= 0 P5 = M12¨’M13¨’M14¨’M15¨’M16= 0 ËùÒÔ´ËʱP5 P4 P3 P2 P1 = 00011£¬µÚÎåλÊý¾Ý³ö´íʱ£¬Êý¾Ý×Ö±äΪ£º0101 0001 0101 0110£¬P5?P4?P3?P2?P1?= 01010£¬¹ÊÕÏ×Ö = 00011¨’01010 = 01001£¬ËµÃ÷Âë×ÖµÚ9λ³ö´í£¬¼´M5³ö´í¡£
20£®¼ÙÉèÒª´«Ë͵ÄÊý¾ÝÐÅϢΪ£º100011£¬ÈôÔ¼¶¨µÄÉú³É¶àÏîʽΪ£ºG(x)= x3+1£¬ÔòУÑéÂëΪ¶àÉÙ£¿¼Ù¶¨ÔÚ
½ÓÊն˽ÓÊÕµ½µÄÊý¾ÝÐÅϢΪ100010£¬ËµÃ÷ÈçºÎÕýÈ·¼ì²âÆä´íÎó£¬Ð´³ö¼ì²â¹ý³Ì¡£ ²Î¿¼´ð°¸£º
ÔÊý¾ÝÐÅϢΪ100011£¬¶ÔÓ¦µÄ±¨ÎĶàÏîʽΪM(x) = x5 + x + 1, Éú³É¶àÏîʽµÄλÊýΪ4룬ËùÒÔÔÚÔÊý¾ÝÐÅÏ¢ºóÃæÌí¼Ó3¸ö0£¬±äΪM?(x) = x3M(x) = x8 + x4 + x3, ÓÃM(x)ȥģ2³ýG(x)£¬µÃµ½µÄÓàÊýΪ111£¬ËùÒԵõ½CRCÂëΪ100011 111¡£ ¼ì²âʱ£¬ÓýÓÊÕµ½µÄCRCÂëȥģ2³ýÉú³É¶àÏîʽ1001£¬ÈôµÃµ½µÄÓàÊýΪ0£¬Ôò±íÃ÷ÕýÈ·£¬·ñÔò˵Ã÷
´«Êäʱ·¢ÉúÁË´íÎó¡£´ËÌâÖнÓÊÕµ½µÄCRCÂëΪ100010 111£¨¼´Êý¾Ý100010¼Ó¼ìÑéλ111£©£¬ÏÔÈ»£¬ÓÃ100010 111 Ä£2³ý 1001£¬µÃµ½ÓàÊýΪ001£¬²»Îª0£¬ËµÃ÷´«Êäʱ·¢Éú´íÎó¡£
µÚ 3 Õ ϰ Ìâ ´ð °¸
2£¨4£©¸ß¼¶ÓïÑÔÖеÄÔËËãºÍ»úÆ÷ÓïÑÔ£¨¼´Ö¸ÁÖеÄÔËËãÊÇʲô¹ØÏµ£¿¼Ù¶¨Ä³Ò»¸ö¸ß¼¶ÓïÑÔÔ´³ÌÐòPÖÐÓгˡ¢³ýÔËË㣬µ«»úÆ÷MÖв»Ìṩ³Ë¡¢³ýÔËËãÖ¸ÁÔò³ÌÐòPÄÜ·ñÔÚ»úÆ÷MÉÏÔËÐУ¿ÎªÊ²Ã´£¿ ²Î¿¼´ð°¸£º£¨ÂÔ£©
3£®¿¼ÂÇÒÔÏÂCÓïÑÔ³ÌÐò´úÂ룺
int func1(unsigned word) { return (int) (( word <<24) >> 24); }
int func2(unsigned word) { return ( (int) word <<24 ) >> 24; }
¼ÙÉèÔÚÒ»¸ö32λ»úÆ÷ÉÏÖ´ÐÐÕâЩº¯Êý£¬¸Ã»úÆ÷ʹÓöþ½øÖƲ¹Âë±íʾ´ø·ûºÅÕûÊý¡£ÎÞ·ûºÅÊý²ÉÓÃÂß¼ÒÆÎ»£¬´ø·ûºÅÕûÊý²ÉÓÃËãÊõÒÆÎ»¡£ÇëÌîдÏÂ±í£¬²¢ËµÃ÷º¯Êýfunc1ºÍfunc2µÄ¹¦ÄÜ¡£ W »úÆ÷Êý Öµ func1(w) »úÆ÷Êý Öµ func2(w) »úÆ÷Êý Öµ 0000 007FH 0000 0080H 0000 00FFH 0000 0100H 127 128 255 256 0000 007FH 0000 0080H 0000 00FFH 0000 0000H +127 +128 +255 0 0000 007FH FFFF FF80H FFFF FFFFH 0000 0000H +127 ¨C128 ¨C1 0 º¯Êýfunc1µÄ¹¦ÄÜÊǰÑÎÞ·ûºÅÊý¸ß24λÇåÁ㣨×óÒÆ24λÔÙÂß¼ÓÒÒÆ24룩£¬½á¹ûÒ»¶¨ÊÇÕýµÄÓзûºÅÊý£»¶øº¯Êýfunc2µÄ¹¦ÄÜÊǰÑÎÞ·ûºÅÊýµÄ¸ß24λ¶¼±ä³ÉºÍµÚ25λһÑù£¬ÒòΪ×óÒÆ24λºó½øÐÐËãÊõÓÒÒÆ£¬¸ß24λ²¹·ûºÅ루¼´µÚ25룩¡£
4£®ÌîдÏÂ±í£¬×¢Òâ¶Ô±ÈÎÞ·ûºÅÊýºÍ´ø·ûºÅÕûÊýµÄ³Ë·¨½á¹û£¬ÒÔ¼°½Ø¶Ï²Ù×÷ǰ¡¢ºóµÄ½á¹û¡£ ģʽ ÎÞ·ûºÅÊý ¶þ½øÖƲ¹Âë ÎÞ·ûºÅÊý ¶þ½øÖƲ¹Âë ÎÞ·ûºÅÊý ¶þ½øÖƲ¹Âë x »úÆ÷Êý 110 110 001 001 111 111 Öµ 6 ¨C2 1 +1 7 ¨C1 »úÆ÷Êý 010 010 111 111 111 111 y Öµ 2 +2 7 ¨C1 7 ¨C1 x¡Áy£¨½Ø¶Ïǰ£© »úÆ÷Êý 001100 111100 000111 111111 110001 000001 Öµ 12 ¨C4 7 ¨C1 49 +1 x¡Áy£¨½Ø¶Ïºó£© »úÆ÷Êý 100 100 111 111 001 001 Öµ 4 ¨C4 7 ¨C1 1 +1
5£®ÒÔÏÂÊÇÁ½¶ÎCÓïÑÔ´úÂ룬º¯Êýarith( )ÊÇÖ±½ÓÓÃCÓïÑÔдµÄ£¬¶øoptarith( )ÊǶÔarith( )º¯ÊýÒÔij¸öÈ·
¶¨µÄMºÍN±àÒëÉú³ÉµÄ»úÆ÷´úÂë·´±àÒëÉú³ÉµÄ¡£¸ù¾Ýoptarith( )£¬¿ÉÒÔÍÆ¶Ïº¯Êýarith( ) ÖÐMºÍNµÄÖµ¸÷ÊǶàÉÙ£¿
#define M #define N int arith (int x, int y) {
int result = 0 ;
result = x*M + y/N; return result; }
int optarith ( int x, int y) {
int t = x; x << = 4; x - = t;
if ( y < 0 ) y += 3; y>>2;
return x+y;
²Î¿¼´ð°¸£º
¿ÉÒÔ¿´³öx*MºÍ¡°int t = x; x << = 4; x-=t;¡±Èý¾ä¶ÔÓ¦£¬ÕâЩÓï¾äʵÏÖÁËx³Ë15µÄ¹¦ÄÜ£¨×óÒÆ4λÏ൱ÓÚ³ËÒÔ16£¬È»ºóÔÙ¼õ1£©£¬Òò´Ë£¬MµÈÓÚ15£»
y/NÓë¡°if ( y < 0 ) y += 3; y>>2;¡±Á½¾ä¶ÔÓ¦£¬¹¦ÄÜÖ÷ÒªÓɵڶþ¾ä¡°yÓÒÒÆ2λ¡±ÊµÏÖ£¬ËüʵÏÖÁËy³ýÒÔ4µÄ¹¦ÄÜ£¬Òò´ËNÊÇ4¡£¶øµÚÒ»¾ä¡°if ( y < 0 ) y += 3;¡±Ö÷ÒªÓÃÓÚ¶Ôy=¨C1ʱ½øÐе÷Õû£¬Èô²»µ÷Õû£¬Ôò¨C1>>2=¨C1¶ø¨C1/4=0£¬Á½Õß²»µÈ£»µ÷Õûºó¨C1+3=2£¬2>>2=0£¬Á½ÕßÏàµÈ¡£
˼¿¼£ºÄÜ·ñ°Ñ
if ( y < 0 ) y += 3; ¸Ä³É if ( y < 0 ) y += 2; £¿
²»ÄÜ£¡ÒòΪy = - 4ʱ²»ÕýÈ·¡£
6£®ÉèA4?A1ºÍB4?B1·Ö±ðÊÇËÄλ¼Ó·¨Æ÷µÄÁ½×éÊäÈ룬C0ΪµÍλÀ´µÄ½øÎ»¡£µ±¼Ó·¨Æ÷·Ö±ð²ÉÓô®ÐнøÎ»ºÍÏÈÐнøÎ»Ê±£¬Ð´³öËĸö½øÎ»C4?C1µÄÂß¼±í´ïʽ¡£ ²Î¿¼´ð°¸£º ´®ÐнøÎ»£º
C1 = X1C0+Y1C0 + X1 Y1 C2 = X2C1+Y2C1 + X2 Y2 C3 = X3C2+Y3C2 + X3 Y3 C4 = X4C3+Y4C3 + X4 Y4
²¢ÐнøÎ»£º
C1 =X1Y1 + (X1+Y1)C0
C2=X2Y2+(X2+Y2)X1Y1+ (X2+Y2)(X1+Y1)C0
C3=X3Y3+(X3+Y3)X2Y2+(X3+Y3) (X2+Y2)X1Y1+(X3+Y3) (X2+Y2)(X1+Y1)C0
C4=X4Y4+(X4+Y4)X3Y3+(X4+Y4)(X3+Y3)X2Y2+(X4+Y4)(X3+Y3)(X2+Y2)X1Y1+(X4+Y4)(X3+Y3) (X2+Y2)(X1+Y1)C0
7£®ÓÃSN74181ºÍSN74182Æ÷¼þÉè¼ÆÒ»¸ö16λÏÈÐнøÎ»²¹Âë¼Ó/¼õÔËËãÆ÷£¬»³öÔËËãÆ÷µÄÂß¼¿òͼ£¬²¢¸ø³öÁã±êÖ¾¡¢½øÎ»±êÖ¾¡¢Òç³ö±êÖ¾¡¢·ûºÅ±êÖ¾µÄÉú³Éµç·¡£ ²Î¿¼´ð°¸£¨Í¼ÂÔ£©£º
Âß¼¿òͼ²Î¼û½Ì²ÄÖеÄͼ3.15ºÍͼ3.16£¬½«Á½¸öͼ½áºÏÆðÀ´¼´¿É£¬Ò²¼´Ö»Òª½«Í¼3.15ÖеÄBÊäÈë¶ËµÄÿһλBiÈ¡·´£¬µÃµ½Bi£¬ºÍÔÂëBiÒ»ÆðË͵½Ò»¸ö¶þ·ѡÔñÆ÷£¬ÓɽøÎ»C0×÷ΪѡÔñ¿ØÖÆÐźš£µ±C0Ϊ1ʱ×ö¼õ·¨£¬´Ëʱ£¬Ñ¡Ôñ½«Bi×÷ΪSN74181µÄBÊäÈë¶Ë£»·ñÔò£¬µ±C0Ϊ1ʱ£¬×ö¼Ó·¨¡£
Áã±êÖ¾ZF¡¢½øÎ»±êÖ¾CF¡¢Òç³ö±êÖ¾OF¡¢·ûºÅ±êÖ¾SFµÄÂß¼µç·¸ù¾ÝÒÔÏÂÂß¼±í´ïʽ»³ö¼´¿É¡£ ZF=F15+F14+F13+F12+F11+F10+F9+F8+F7+F6+F5+F4+F3+F2+F1+F0 CF=C16
OF= C0£¨A15B15F15 + A15B15F15£©+ C0£¨A15B15F15 + A15B15F15£© SF= F15
8£® ÓÃSN74181ºÍSN74182Æ÷¼þÉè¼ÆÒ»¸ö32λµÄALU£¬ÒªÇó²ÉÓÃÁ½¼¶ÏÈÐнøÎ»½á¹¹¡£
£¨1£© д³öËùÐèµÄSN74181ºÍSN74182оƬÊý¡£ £¨2£© »³ö32λALUµÄÂß¼½á¹¹Í¼¡£ ²Î¿¼´ð°¸£¨Í¼ÂÔ£©£º
½«Èçͼ3.15ËùʾµÄÁ½¸ö16λALU¼¶ÁªÆðÀ´¼´¿É£¬¼¶ÁªÊ±£¬µÍ16λALUµÄ¸ßλ½øÎ»C16×÷Ϊ¸ß16λALUµÄµÍλ½øÎ»C0£¬Òò´Ë£¬Ö»ÒªÓÃ8ƬSN74181ºÍ2ƬSN74182¡£
9£®ÒÑÖªx= 10£¬y= ¨C6£¬²ÉÓÃ6λ»úÆ÷Êý±íʾ¡£Çë°´ÈçÏÂÒªÇó¼ÆË㣬²¢°Ñ½á¹û»¹Ô³ÉÕæÖµ¡£
£¨1£© Çó[x+y]²¹£¬[x¨Cy]²¹¡£ £¨2£© ÓÃÔÂëһλ³Ë·¨¼ÆËã[x¡Áy]Ô¡£ £¨3£© ÓÃMBA£¨»ù4²¼Ë¹£©³Ë·¨¼ÆËã[x¡Áy]²¹¡£ £¨4£© Óò»»Ö¸´ÓàÊý·¨¼ÆËã[x/y]ÔµÄÉ̺ÍÓàÊý¡£ £¨5£© Óò»»Ö¸´ÓàÊý·¨¼ÆËã[x/y]²¹µÄÉ̺ÍÓàÊý¡£
²Î¿¼´ð°¸£º
[10]²¹= 001010 [¨C6]²¹= 111010 [6]²¹= 000110 [10]Ô= 001010 [¨C6]Ô= 100110 £¨1£© [10+(¨C6)]²¹= [10]²¹+[¨C 6]²¹= 001010+111010 = 000100 (+4)
[10¨C(¨C6)]²¹= [10]²¹+[¨C (¨C6)]²¹= 001010+000110 = 010000 (+16) £¨2£©ÏȲÉÓÃÎÞ·ûºÅÊý³Ë·¨¼ÆËã001010¡Á 000110µÄ³Ë»ý£¬ÔÂëһλ³Ë·¨¹ý³Ì£¨Ç°ÃæÁ½¸ö0Ê¡ÂÔ£©ÈçÏ£º
C P Y ˵Ã÷ 0 0000 0 1 1 0 P0=0
+ 0 0 0 0 y4= 0£¬+0
0 0 0 0 0 C,P ºÍYͬʱÓÒÒÆÒ»Î» 0 0 0 0 0 00 1 1 µÃP1
+ 1 0 1 0 y3=1£¬+X
01 0 1 0 C,P ºÍYͬʱÓÒÒÆÒ»Î» 0 0 1 0 1 0 00 1µÃP2 + 1 0 1 0y2= 1£¬+X
0 1 1 1 1 0 00 0 C,P ºÍYͬʱÓÒÒÆÒ»Î» 0 01 1 11 0 00µÃP3
+ 0 0 0 0y1= 0£¬+0
0 0 1 1 1 C,P ºÍYͬʱÓÒÒÆÒ»Î» 0 0 0 1 111 0 0µÃP4
ÈôÁ½¸ö6λÊýÏà³ËµÄ»°£¬Ôò»¹ÒªÓÒÒÆÁ½´Î£¬µÃ 000000 111100
·ûºÅλΪ£º0?1 = 1£¬Òò´Ë£¬[X¡ÁY]Ô= 1000 0011 1100 ¼´X ¡Á Y = ¨C11 1100B = ¨C60
£¨3£© [¨C10]²¹= 110110£¬²¼Ë¹³Ë·¨¹ý³ÌÈçÏ£º
P Y y-1˵Ã÷
0 0 0000 1 110 1 00 Éèy-1 =0£¬[P0]²¹=0
y0 y-1 =00£¬P¡¢YÖ±½ÓÓÒÒÆÒ»Î»
0 0 0000 0 1 11 0 1 0 µÃ[P1]²¹ + 1 1 0 110y1 y0 =10£¬+[¨CX]²¹ 1 1 0 110 P¡¢YͬʱÓÒÒÆÒ»Î»
1 1 1 011 00 1 1 1 0 1 µÃ[P2]²¹ + 0 0 1 010y2 y1 =01£¬+[X]²¹
0 0 0 1 01 P¡¢YͬʱÓÒÒÆÒ»Î»
0 0 0 0 1 01 0 0 1 1 1 0µÃ[P3]²¹
+1101 1 0 1 0 0 1 1 1 0y3 y2 =10£¬+[¨CX]²¹ 11 1 0 0 0P¡¢YͬʱÓÒÒÆÒ»Î» 111 1 0 0 0 1 0 01 1 1µÃ[P4]²¹
+ 0 0 0 00 00 1 0 0 1 11y4 y3 =11£¬+0 111 1 0 0P¡¢YͬʱÓÒÒÆÒ»Î» 111 1 1 0 0 0 1 00 1 1µÃ[P5]²¹
+ 0 0 0 00 00 0 10 0 1 1y5 y4 =11£¬+0 111 1 1 0P¡¢YͬʱÓÒÒÆÒ»Î» 111 1 1 1 0 0 0 10 0 1µÃ[P6]²¹
Òò´Ë£¬[X ¡Á Y]²¹=1111 1100 0100£¬¼´X ¡Á Y = ¨C11 1100B= ¨C60
£¨4£©ÒòΪ³ý·¨¼ÆËãÊÇ2nλÊý³ýnλÊý£¬ËùÒÔ[6]Ô=0110£¬[10]Ô=0000 1010£¬[¨C6]²¹=1010£¬
É̵ķûºÅλ£º0?1=1£¬ÔËËã¹ý³Ì£¨Ç°ÃæÁ½¸ö0Ê¡ÂÔ£©ÈçÏ£º ÓàÊý¼Ä´æÆ÷RÓàÊý/É̼ĴæÆ÷Q˵Ã÷