235 TIF

235 TIF



bits.cpp

#indude <stdio.h>

#include <memory.h>

#indude <string.h>

#indude <iostream.h>

#indude "..\inc\tips.h"

// Wskazówka 28.

const int cbitDWORD= sizeof(DWORD) * 8;

// Obraca bity cBits w danym podwójnym słowie. Wartością zwrotną funkcji jest // wynikowe podwójne słowo po obrocie.

DWORD RotateLeft(DWORD dw, int cBits)

{

II Wygenerowany kod.

I*

0040E813    mov    eax,dword ptr [dw]

0040E816    mov    ecx,dword ptr [cBits]

0040E819    shl    eax,d

sizeof(DWORD) * 8 równa się 32 bajty, czyli 20h.

0040E81B    mov    ecx,20h

0040E820    sub    ecx,dword ptr [cBits]

0040E823    mov    edx,dword ptr [dw]

0040E826    shr    edx,cl

0040E828    or    eax,edx

*1

II Przesuwa podwójne słowo w lewo o cBits bitów i sprawdza wartość jego // alternatywy z wynikiem przesunięcia podwójnego słowa w prawo o liczbę // bitów w podwójnym słowie zmniejszoną o cBits. return (dw « cBits) | (dw » (sizeof(DWORD)*8 - cBits));

}

DWORD RotateRight(DWORD dw, int cBits)

{

return (dw » cBits) | (dw « (sizeof(DWORD)*8 - cBits));

}

// Klasa pozwalająca na manipulowanie polami bitowymi o zmiennej długości.

// Wskazówka 32. dass BF {

public:

BFA:


Wyszukiwarka

Podobne podstrony:
235 TIF bits.cpp #indude <stdio.h> #include <memory.h> #indude <string.h> #indude
bits.cpp #indude <stdio.h> #include <memory.h> #indude <string.h> #indude
DSCN3573 Zadanie3 #indude<stdio.h> #include<como.h> mainO{ struct moiutor_ŁCD { — ■
faq pliki1 #include <stdio.h> #include <conio.c> //I #include <fstrearn> int
10 p03 #include <stdio.h> #include <conio.c> #include <iostrearn> #inclu
14 p05 #include <stdio.h> #include <conio.c> #include <iostrearn> #include
16b p01 #include <stdio.h> #include <conio.c> #include <iostream.h>//O void F
16c p01 #include <stdio.h> #include <conio.c> #include <iostream.h> int rnain
17 p01 #include <stdio.h> #include <conio.c> #include <iostream.h> int main(int ar

więcej podobnych podstron