HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Műveletek bináris számokkal


Példaprogram letöltése

4603 bájt

Ha bináris számokat akarunk összeadni, kivonni, szorozni vagy osztani, akkor azt egy tudományos számológép minden további nélkül elvégzi, addig a határig, ahány digitet meg tud jeleníteni. Készítünk egy komponenst, amely segítségével hosszabb bináris számokon is elvégezhetjük a felsorolt alapműveleteket.

A mellékelt példaprogram megnyitása előtt a BINOperation.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A komponens 4 függvényt tartalmaz, a 4 alapműveletnek megfelelően.
Add
Osztály: TBINOperation
function Add(
Bin1,
Bin2: String
): String;
Összeadás.
Paraméterek
Bin1
Az összeadás egyik tagja.
Bin2: String
Az összeadás második tagja.
Visszatérési érték
Az összeadás eredményét képező, bináris szám.
Subtract
Osztály: TBINOperation
function Subtract(
Bin1,
Bin2: String
): String;
Kivonás.
Paraméterek
Bin1
Kisebbítendő.
Bin2: String
Kivonandó.
Visszatérési érték
A kivonás eredményét képező, bináris szám.
Multiply
Osztály: TBINOperation
function Multiply(
Bin1,
Bin2: String
): String;
Szorzás.
Paraméterek
Bin1
Szorzandó.
Bin2: String
Szorzó.
Visszatérési érték
A szorzat, bináris formában.
Divide
Osztály: TBINOperation
function Divide(
Bin1,
Bin2: String
): TDivisionResult;
Maradékos és maradék nélküli osztás.
Paraméterek
Bin1
Osztandó.
Bin2: String
Osztó.
Visszatérési érték
A visszatérési érték TDivisionResult típusú. A struktúra DivPart tagja az osztás egész részét, a ModPart tag a maradékot tartalmazza. Mindkettő bináris számot ad vissza.
A komponens elkészítése
Bármelyik műveletet valósítjuk meg, az eljárás lényege közös. A paraméterként kapott bináris számokat átalakítjuk tízes számrendszerbeli számokká. Elvégezzük a szükséges műveletet, majd az eredményt visszaalakítjuk bináris formátummá.
function TBINOperation.Multiply(Bin1, Bin2: String): String;
var
  n1, n2: Extended;
begin
  n1:=StrToFloat(Convert(2,10,Bin1));
  n2:=StrToFloat(Convert(2,10,Bin2));
  Result:=Convert(10,2,FloatToStr(n1*n2));
end;
Az átalakításhoz egy segédfüggvényt készítünk, amely képes 2 és 10 közötti számrendszerből, bármelyikből bármelyikbe átváltani egy számot.
Convert
function Convert(
NFrom,
NTo: Byte;
Value: String
): String;
Számrendszerek közti átváltást tesz lehetővé, 2 és 10 között.
Paraméterek
NFrom
A számrendszer, amelyből konvertálunk.
NTo: Byte
Az a számrendszer, amelybe konvertálunk.
Value: String
A konvertálandó érték, sztringként.
Visszatérési érték
A konvertálás eredménye, sztring formátumban.
Az átváltáshoz szükséges számjegy digiteket a NUMBERS tömb tartalmazza.
const
  NUMBERS = '0123456789';
Ha a konstans tartalmat bővítjük az ABC betűivel is, akkor 16-os vagy még nagyobb számrendszerek használatát is lehetővé teszi a Convert függvény.

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 264. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |