Egyszerű és gyors emulációs műveletek bitvonalakon

Bit vonal leegyszerűsítené a végrehajtás bizonyos algoritmusok nyelvén a platform „1C: Enterprise 8”. De míg a platform a bitvonalakon műveletek vannak. Ugyanakkor azt tett kísérletet, hogy szimulálja ezek az átalakulások művelet bitek alapján egyedi feldolgozási ciklusok, amelyek rosszul befolyásolja a sebességet. Javasolt egy új, egyszerű megoldás alapján a képviselet a bit Húrok karakter „0” és „1”. Ez példákat végrehajtási kódot nagyobb logikai műveletek AND, OR, XOR, NO nélkül ciklusban.
Amint azt applet megszerzése egymást követő értékeinek Gray-kód, hogy lehet használni, hogy gyorsítsa fel a keresési változatok.

Itt egy cikk címe: „kiszámítása az SHA-1 hash 1C által. Bit műveletek 1C vagy bináris matematika óra „egy sor funkciót, amely lehetővé teszi, hogy működjön együtt a számát egy byte húr. Középpontjában az összes funkció említett vannak bites feldolgozás ciklus.

Egy másik módja a képviselő bitsztringekre, hogy tetszik nekik számok a karaktersor. Tárolás bitsztringekre a karaktersorozatok „0” és „1”, és úgy legalább 8 (16) szor több memóriát, de lehetővé teszi, hogy megszabaduljunk a ciklust végző logikai műveleteket a sorok.

1. A „VAGY”

Például, a művelet a logikai «vagy a» (vagy, diszjunkcióban) a bemeneti bit húrok X és Y lehet az alábbiak szerint végezzük:

ahol a formátum string feltételezi egy előre meghatározott bit, a hiánya számok körzetek a csoport mellett vezető nullák és bemutatása nulla nullák lánc hossza megegyezik a kicsit a bitsorozat. Azaz:

Például szabályoknak megfelelően teljesítő logikai „vagy” művelet az eredeti sorok

eredményt kapjuk:

Más szóval, a húr alakítjuk decimális szám, a tizedes szám adunk. Ennek eredményeként, az egyes kibocsátások válnak „0”, „1” vagy „2”. Ezután a sorszám van kialakítva ismét, ahol a „2” áll a helyén kívül a két egység értéke „1” összhangban végrehajtási szabályokat a logikai művelet.

Lényegében ez a megközelítés az egyes bitek feldolgozása külön összeadó és összegezte a korlátozott számban kiküszöböli keresztül kisül az átviteli kapcsolat kiegészítőket.

Természete miatt a függvény „formátum” bit hosszúságú (karakter) húrok feldolgozott így korlátozott 309 bit (szimbólumok).

2. "XOR" funkció

Egyszerűen úgy néz ki, a logikai „kizáró vagy» (XOR hiányát előíró):

Például, hogy két 64 bites szöveg:

és kap a következő helyes eredmény:

3. „NEM” funkció

Még könnyebb néz logikai tagadás művelet „nem» (nem, tagadás):

4. Az „ÉS”

Úgy néz ki, egy kicsit bonyolultabb logikai művelet „és» (és összefüggésben):

5. Megjegyzések és magyarázatok

Bár az alapvető használat esetén műveletek bitsztringekre azt sugallja, hogy az egyenlő hossza megfelel az előzetesen kiválasztott fix szóhossza és funkciók működnek sor különböző hosszúságú, ha ez kevesebb, mint az előre meghatározott bit mélységben. Ha ez a vonal jobbra van igazítva. Természetesen ez lehet változtatni, ha szükséges, kissé bonyolítja a kódot.

A nagy előnye ennek a képviseletét bitvonalakon az a képesség, hogy tárolja az információt az adatbázisban (szemben a hosszú számok). Így kell alakítani a sorok számát, és fordítva, amelynek értelmében ciklus nem elég a legtöbb esetben nem merül fel.

Ellenőrző sebesség fogadó mutatja csökkentett nyereség mintegy 15-szor, mint a biztosított funkciók a cikk „bitműveletek 1C leckét vagy bináris matematika”.

Inkább nagy jutalom az a képesség, hogy számolja meg egyesek (nullák) összhangban beágyazott függvény StrChisloVhozhdeny nyelv (BitovayaStroka, „1”), amely előírja, hogy az optimalizálást a számok még assembly szintű [Alaposan kb-számító egység bit].

Között a funkciók könnyen ellenőrizheti a jelentését az egyes bitek hasznos lehet, és más string függvények.

Egy erős vágy, így lehetséges, hogy végre aritmetikai funkciók. Azonban ebben az esetben az alsó számjegy számok, amely található a bal oldalon.

Itt például, mert a növekmény műveletet végzünk (least significant bit a bal oldalon):

6. Gyakorlati alkalmazás: Gray-kód

Az eredmény a következő függvényt:

Ha hívási sorrendjét egy kezdeti érték „0000” funkció-kód a következő sorrendben értékek: