2011-08-12 20 views
7

Co to oznacza w Delphi, gdy widzę polecenia takiego:

char($23) 

Co oznacza symbol dolara oznacza w tym kontekście?

+1

Jest również możliwe napisanie powyższego jako '# $ 23' (# oznacza charakter dosłowny, a $ 23 nadal oznacza równowartość wartości hex do 35 po przecinku) –

Odpowiedz

17

Symbol dolara oznacza, że ​​poniżej podano wartość szesnastkową.

ShowMessage (Char (23 $)); przedstawia #.

+0

Dziękuję Glenn !! – Danilo

+4

Zasadniczo taki sam jak 0x23 w językach bazujących na C (C, C++, C#, Java). StrToInt może również przekonwertować "23 USD" na int 35 –

1

Reprezentuje postać. Na przykład char (13) to koniec linii.

+1

Cała rzecz (w tym Char) oznacza znak, ale ponieważ tytuł pytany o same $ (zmieniłem jego treść) ta odpowiedź nie jest tak dobra, jak przyjęta. –

2

Symbol $ służy do prefiksowania heksadecymalnego dosłownego. documentation mówi:

Cyfry

Integer i rzeczywiste stałe mogą być reprezentowane w notacji dziesiętnej jako sekwencji cyfr bez przecinkami lub spacjami i prefiksem + lub - operatora, aby wskazać znak. Wartości domyślnie są dodatnie (tak, że na przykład , 67258 jest równoważne +67258) i muszą znajdować się w zakresie największego zdefiniowanego realnego lub całkowitego typu.

Cyfry z kropkami dziesiętnymi lub wykładnikami oznaczają liczby rzeczywiste, a inne cyfry oznaczają liczby całkowite. Kiedy znak E lub e pojawia się wewnątrz rzeczywistego, oznacza to "razy dziesięć do potęgi". Na przykład 7E2 oznacza 7 * 10^2, a 12,25e + 6 i 12,25e6 oba oznaczają 12,25 * 10^6.

Prefiks znaku dolara oznacza liczbę szesnastkową, na przykład 8F. Liczby heksadecymalne bez poprzedzającego operatora jednoargumentowego są przyjmowane jako wartości dodatnie. Podczas przypisywania, jeśli wartość szesnastkowa jest poza zakresem przyjmującego, powstaje błąd, , z wyjątkiem przypadku Integer (32-bitowa liczba całkowita), w którym powstaje ostrzeżenie . W tym przypadku wartości przekraczające dodatni zakres dla Integer są uważane za liczby ujemne w sposób zgodny z liczbą całkowitą uzupełnienia dwóch.

Tak więc w twoim przykładzie $23 jest liczbą, której reprezentacją heksadecymalną jest 23. Ta liczba ma reprezentację dziesiętną 35, więc można napisać:

Assert($23 = 35);