Hex egy húr, és fordítva
Hex String, és fordítva
Mester kérem, mondja meg, hogyan kell átalakítani a Hex String, és fordítva. Megvan például egy bizonyos bájtsorozatok: Buf: array of Byte
Megvan ez a gyönyörű Buf lefordítani egy karakterlánc, amely tartalmazza a saját HEX formátum
s. húr. ahol vonal hossza megegyezik a hossza viszont Buf * 2 és vissza!
Talán vannak olyan komponensek, amelynek segítségével könnyű lenne működni HEX?
Lásd a formátumot () függvény
> Pat
És hogyan működik vele? moslék formátum nem megoldás [0]
AL1 # XA0; (21.11.04 18:35) # XA0;
Nincs szükség, Hex már String, illetve, és fordítva.
De miért a téma önmagában már beszél bájt.
> [2] AL1 # XA0; (21.11.04 18:56)
A munka, mint: Format ( "% x", [IntegerValue]).
> Mester kérem, mondja meg, hogyan kell átalakítani a Hex karaktersorozat
> És fordítva.
1) Egy HEX String (vagy inkább a egész szám, bájt vagy más egész típusok in string formátumban HEX)
# XA0, a) függvény IntToHex (Érték: integer; számjegyek: Integer): string;
# XA0; b) méret (már kifejtette predіduschih hozzászólás)
2.) Vissza
# XA0; funkció StrToInt (const S: string): egész;
például: # XA0; MyInteger: = StrToInt ( "$" + SajatString);
ahol vonal hossza megegyezik a hossza viszont Buf * 2 és vissza
Igen, azt hiszem, értem. Minden byte kell feltüntetni két számjegy. Majd akkor:
Tévedtem, nem
IntToHex (BUF [i])
valamint az írásbeli SergP
IntToHex (BUF [i], 2)
Bár van még egy probléma a nullát. Format valószínűleg nélkül nem tud, de írtam, hogy közvetlenül átalakítani
nem kell egy kicsit:
Megvan Buf: kitűnő Byte, mely 6 byte: 6D6F757365 és szeretnék s: String nyert etogo szó egér SHex: string kap „6D6F757365”. (Én jövök hossza 5 karakter és SHex 10 karakter)
Azaz azt kell tudni, hogyan tudok átalakítani a Buf egy karakterlánc és StringinHex és fordítva!
> [9] AL1 # XA0; (21.11.04 19:29)
Valami, amit nem az üvegházban, ahol 6 byte, én csak látni 5.
> [9] AL1 # XA0; (21.11.04 19:29)
De általában fogantyúk húrok egy ciklus 2 karakter, minden darab fordítja Byte segítségével StrToInt, és akkor kap a karakter megfelelő kód használatával Chr ().
Mi az a srác leszállt? Csak mondd meg a választ, és minden :)
var
# XA0; Buf: tömb byte;
# XA0; S, SHex: String;
# XA0 I: integer;
kezdődik
# XA0; S: = "";
# XA0; SHex: = "";
# XA0, mert én: = Low (BUF) Magas (BUF) do
# XA0; kezdődik
# XA0; # XA0; S: = S + Chr (BUF [I]);
# XA0; # XA0; SHex: = SHex + formátum ( "% x", [Buf [I]])
# XA0; end
végén.
Valami ehhez hasonló, chtoli?
funkció HerZnaetChtoToString (var MyBuf: TMyArray): string;
var
# XA0; i: integer;
kezdődik
# XA0; setlength (eredményeképpen magas (MyBuf) Low (MyBuf) +1);
# XA0; i: = alacsony (MyBuf) Magas (MyBuf) do
# XA0; eredményeként [i-alacsony (MyBuf) +1]: = CHR (MyBuf [i]);
végén;
A papír nem próbálta. Lehet, hogy tévedek valahol a menet.
A IntToHex nem probléma, egy vezető nullával.
Köszönöm.
> Előkészületek. vég
És akkor is mondani a kódot visszafordítani a folyamatot?
(String in BUF)
> [21] AL1 # XA0; (21.11.04 21:06)
> És akkor is mondani a kódot visszafordítani a folyamatot?
> (Ebből a String BUF)
Egy karakterlánc - S vagy SHex?
Ha úgy érted SHex, akkor:
var
# XA0; Buf: tömb byte;
# XA0; SHex: String;
# XA0 I, Len: integer;
Működik, de a optimalitást - Nem tudom. Akarok aludni, töprengett rossz.
Ui Szeretem a Balti-7.
Köszönöm. Úgy tűnik, hogy működik!
Ez a kérdés:
while (I <= High(Buf)) do
valamint a jogot, hogy a megfelelő méretű Buf?
> [24] AL1 # XA0; (21.11.04 21:42)
> És hogyan kell beállítani a kívánt méretet azonnal Buf?
Buf kívánt méret van beállítva a sorban: "SetLength (BUF, Len div 2)."
Ui Akkor is Baltic 3.
míg a ciklus lehet helyettesíteni, azaz helyette:
> Hmm. Nem látni nekem egy sört. - (
Az, hogy az e-mail! Ország? City. -)
Nem, nem látom. Nem valószínű, hogy ő nastolko vastag finom célzásokat :) Ő megérti magát, hogy nem tudja megérteni.
> Ő maga nem tudja megérteni valamit.
Én nem ittam, hogy a lényeg, hogy magam, hogy nem érti. -)
És mi van a Hex átalakítás egy string, és fordítva - matatott egy halom dokumentumot. bárhol a dia UTB obyasnyaetsya. tényleg nincs példa. és kevés világos :-( Tud valaki mondja meg, hogy hol vagyok szól UTB olvasmányként hálás leszek -?).
> [30] AL1 # XA0; (21.11.04 22:17)
Most a tippeket csak a teljes kifizetés :-)
16 bites adatok ábrázolása.
Range 0x00 hogy 0xFF
(Ha int, majd 0 és 255)
Először is, nem ez nem egy 16-bites ábrázolása az adatokat. Ez az ábrázolás a 16 szám hexadecimális számrendszerben. 16-bites ábrázolása a 3. ábra, amikor rögzítik a 16 bites valamit. például
0000000000000003
vagy
0000000000000101
A lényeg „kiszerelés”. Csak olyan emberek. Egy szabványos processzor, úgy néz ki, mint a „nincs”. Ő érdekel a mi van odakint 16 bites ábrázolás, képviselet a 16 hexadecimális számrendszer. Akkor az iskolában nem tanítják, hogyan kell lefordítani egy elszámolási rendszer másik nem?
> Te nem tanították az iskolában, hogyan lehet átvinni egyik számítási rendszer
> A másik nem?
Még tanítottam! Mi felzárkózni, és ismét tanítani. -)
> például
> 0000000000000003
> vagy
> 0000000000000101
Ez a bináris ábrázolása az adatokat. -)
3 közötti egész szám - UTB 0x03 Hex
Megmutattam, hogy mi a 16-bites és az első predstavoenie nem bináris. ez skolkougodnoichnoe (legfeljebb három). de mindkét reprezentációk 16. tirazryadnye
és mi a szám, meg tudja mondani?
> Mi az a szám, meg tudja mondani?
Természetesen tudok:
Egész egész szám. Tartomány -2147483648..2147483647. A változó Integer foglal memória 4 bájt (32 bit). Her bit formátum: A legjelentősebb bit - jele a szám, a fennmaradó biteket (31 db) - magát a számot.
Ennyi. Integer - egy típust. leírja a változó és a Hex - Ez a nézet azt mutatja, a változó. Köztük nincs kapcsolat. Most mi van a karakterlánc?
> Most mi karakterlánc?
amely leírja egy string változót
SW. Mester, kérem fordítsa pár utalás a dokkok, ahol elolvashatja a UTB jó! Szintén érdekes, hogy megértsék!
Köszönöm.
Hogy szenved.
Vannak még jó funkciók Delphi - BinToHex és HexToBin.
Minden rendben.
> Vannak még jó funkciók Delphi - BinToHex és HexToBin.
Van egy sor Hex helyett BinToHex
Ismét van vonal Hex
var buf. tömb byte;
# XA0; # XA0; s. string;
Buf: = s;.
A már lefordított, de csak egy string egy byte tömböt, kivéve, ha a fordító nem sérteget ellen.
Valamint hogyan lehet felismerni a szimbóluma a kódot?
(Fordított folyamat Fct Chr)
> [46] AL1 # XA0; (22.11.04 16:21)
> Nos, és hogyan lehet felismerni a szimbóluma a kódot?
Ord ()
Kedves Mester, valahogy kiderült tele eredmények:
írja ArrayOfByte = tömb byte;
funkció Hex2StrHex (BUF tömb byte; BufLength egész ..): String;
var i. integer;
kezdődik
Eredmény: = "";
I: = 1-től BufLength csinálni
kezdődik
# XA0; Eredmény: = Eredmény + formátum ( "% x", [Buf [I]])
végén;
végén;
funkció Hex2Str (BUF tömb byte; BufLength egész ..): String;
var i. integer;
kezdődik
Eredmény: = "";
I: = 1-től BufLength csinálni
kezdődik
# XA0; Eredmény: = Eredmény + Chr (BUF [I]);
végén;
végén;
funkció StrHex2Hex (. SHex string; SHexLength integer.): ArrayOfByte;
var
I: integer;
funkció Str2Hex (S. string; SLength integer.): ArrayOfByte;
var
I: integer;
kezdődik
ha (SLength> 0), akkor
kezdődik
# XA0; SetLength (Eredmény, SLength);
# XA0; I: = 0: Kiváló (Eredmény) do
# XA0; Eredmény [I]: = Ord (S [i + 1]);
végén;
végén;
Ellenőrizze kérjük, valami baj van?
És még egy kérdés: hogyan lehet bejelenteni function (): tömb byte, nem bejelentett egy új típusa: típus ArrayOfByte = array of byte.
> [48] AL1 # XA0; (22.11.04 17:13)
És miért az átviteli függvényében hosszúságú tömbök és vonósokra, amikor (a hosszúság) lehet meghatározni egy függvény?
abban az esetben, egyetemesség. hirtelen elfelejti lerövidíti a vonalat, miután dolgozik vele. vagy egy puffer tegyük fel, hogy meg kell enni, és kezelni darab, és nem az egész. -)
> [50] AL1 # XA0; (22.11.04 17:28)
De valami lehet zavaros és adja át, például a szám több mint lehetséges. És ez lesz a kiút külföldön.
> [48] AL1 # XA0; (22.11.04 17:13)
> Funkció Hex2StrHex (BUF tömb byte; BufLength egész ..): String;
> Az I: = 1-től BufLength csinálni
Error. Buf: tömb Byte - Ez egy nyílt tömb. Számukra, mint a dinamikus, elem kezdő sorszám nullára. Itt IMHO, jobb helyett a tömb byte a már bejelentett begépelt - egy dinamikus tömb - ArrayOfByte. De index továbbra is nulla, így azt tanácsolom, itt 1 helyett és BufLength használni Low (BUF) és nagy (BUF).
Memória: 0,83 MB
Idő: 0.079 c