Skocz do zawartości

Jak zapisać hexadecimal do stringa


Rekomendowane odpowiedzi

Już przysypiam i pewnie pytanie będzie banalne. Jak uzyskać z liczby całkowitej liczbę heksadecymalna którą później chcę zapisać jako string. Czyli taki kawałek kodu:

GML
for (i=0; i<12; i+=1) {

tlo:=working_directory+"\gotowe\"+string(i)+string('.png');

aaa=background_replace(tlogm, tlo, 0, 1);

draw_background(tlogm,0,218+(i*125));

}

 

tlo ma mieć ścieżkę w postaci "working_directory\gotowe\(i).png", gdzie i ma przyjmować wartości 0,1,2,3,4,5,6,7,8,9,A,B,C (oczywiście bez tych nawiasów).

Odnośnik do komentarza
Udostępnij na innych stronach

GML
wynik = "";

while(a>0)

{

r = a mod 16;

a = floor(a/16)

 

if(r==10)

s="A";

else if(r==11)

s="B";

else if(r==12)

s="C";

else if(r==13)

s="D";

else if(r==14)

s="E";

else if(r==15)

s="F";

else

s=string(r);

 

wynik+=s;

}

 

W zmiennej wynik masz teraz liczbę a w systemie szesnastkowym. Ale zapisaną od tyłu. Nie pamiętam czy była funkcja na odwracania stringa, a pisać mi się jej nie chce. Z tym sobie poradzisz.

Może oczywiście to zrobić bez tych ifów, ale w ten sposób będzie bardziej dla ciebie zrozumiałe.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

A od przodu to nie będzie czasem:

GML
wynik = s + wynik;

 

Cały skrypt:

 

GML (intToHex)
var _a,_w,_r;

 

_w = '';

_a = round(argument0);

 

while ( _a > 0) {

_r = _a mod 16;

_a = floor(_a/16);

 

if _r < 10 then _w = string(_r) + _w else _w = chr( 55 + _r) + _w;

}

 

return w;

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...