Jak porównać liczbę szesnastkową z liczbami szesnastkowymi w powłoce?Jak porównać liczby szesnastkowe z liczbami szesnastkowymi w powłoce?
Odpowiedz
Przynajmniej bash
obsługuje liczb całkowitych szesnastkowych bezpośrednio, pod warunkiem, że są one prefiksem 0x
:
$ [[ 0xdead -lt 0xcafe ]] && echo yes || echo no
no
$ [[ 0xdead -gt 0xcafe ]] && echo yes || echo no
yes
po prostu użyć operatorów porównania normalnie ...
hej mam jeszcze jedną wątpliwość: jak sprawdzić, czy dane wejściowe to liczba lub ciąg znaków? – bd1257
Właściwie odpowiedź @thkala działa tylko dla liczb nie większych niż 0x7fffffffffffffff
(LLONG_MAX
):
$ [[ 0xa000000000000000 -lt 0x6000000000000000 ]] && echo -1
-1
$ [[ 0xa00000000000000 -lt 0x600000000000000 ]] && echo -1 || echo 1
1
przypadku liczb większych następnie LLONG_MAX
można użyć gdb
, ale działa wolniej przedmiotu:
function cmp()
{
gdb -ex "p ${1}ULL == ${2}ULL ? 0 : (${1}ULL < ${2}ULL ? -1 : 1)" -batch |& grep '^$1' | cut -d' ' -f3
}
$ cmp 0xa000000000000000 0x6000000000000000
1
$ cmp 0xa00000000000000 0x600000000000000
1
Właściwie odpowiedź @thkala działa tylko dla liczb nie większych niż 0x7fffffffffffffff (LLONG_MAX). Dla liczb większych niż LLONG_MAX możesz użyć gdb, ale oczywiście będzie działać wolniej. (zobacz, jak ładnie ta informacja, nie bezpośrednio w odpowiedzi na pytanie, pasuje do ** komentarza **.) (pozostało 300 znaków) –
- 1. Jak wymawiasz duże liczby szesnastkowe?
- 2. Jak wyświetlać liczby szesnastkowe w C?
- 3. Czy liczby szesnastkowe są kiedykolwiek ujemne?
- 4. Drukuj tablicą całkowitą jako liczby szesnastkowe
- 5. Jak drukować liczby szesnastkowe w PHP lub Java
- 6. Reprezentacja liczb zmiennoprzecinkowych Java jako liczby szesnastkowe
- 7. Czy numer typu wejścia HTML5 może być używany z liczbami szesnastkowymi?
- 8. Tryb Emacs C - jak podświetlasz składnię podając liczby szesnastkowe?
- 9. Jak wykonywać obliczenia zmiennoprzecinkowe z liczbami całkowitymi
- 10. Problemy z liczbami pierwszymi
- 11. Jak pracować z dużymi liczbami w PHP?
- 12. Dlaczego liczby Num nie można porównać z 0?
- 13. Duża tablica z liczbami losowymi z pytonem
- 14. Jak porównać dwie wartości ciągu jako liczby całkowite?
- 15. Jak uciec wartości szesnastkowe w netcata
- 16. Jak porównać dziedziczenie z kilkoma klasami?
- 17. CUDA - Jak pracować z liczbami zespolonymi?
- 18. Java | operator z liczbami całkowitymi;
- 19. Jak porównać wektory z Boost.Test?
- 20. Cel C - Tablica z liczbami
- 21. Csvwrite z liczbami większymi niż 7 cyfr
- 22. jak porównać ciąg z enum w C#
- 23. Oracle SQL porównać ciągi zawierające liczby, począwszy od 0 (zero)
- 24. Błąd usortowania z liczbami dziesiętnymi
- 25. Czy GDB może poprawnie korygować szesnastkowe liczby zmiennoprzecinkowe w stylu C?
- 26. Mapa ciepła z liczbami w ggvis
- 27. Jak konwertować ułamki dziesiętne na ułamki szesnastkowe?
- 28. Jak porównać x i y w F #?
- 29. W języku Python, jak uzyskać liczby całkowite z pliku .txt z odstępem i \ r \ n \ rozdzielonymi liczbami na wielu liniach?
- 30. Losowe podwojenie między podanymi liczbami
Co masz na myśli? Czy chcesz, aby "0xdead" było równe "dEad" lub "57005"? Potrzebujemy więcej szczegółów. –
i uwzględnij to, co dotychczas wypróbowałeś. Powodzenia. – shellter
faktycznie piszę tak ... jeśli test $ 1 -eq "00" gdzie $ 1 jest wartością szesnastkową. – bd1257