Come confrontare il numero esadecimale con i numeri esadecimali nella shell?come confrontare i numeri esadecimali con i numeri esadecimali nella shell?
risposta
Almeno bash
supporta direttamente interi esadecimali, purché siano preceduti da 0x
:
$ [[ 0xdead -lt 0xcafe ]] && echo yes || echo no
no
$ [[ 0xdead -gt 0xcafe ]] && echo yes || echo no
yes
Basta usare gli operatori di confronto normalmente ...
hey ho ancora un dubbio: come verificare se l'input è numero o stringa? – bd1257
In realtà @thkala answer funzionerà solo per numeri non maggiori di 0x7fffffffffffffff
(LLONG_MAX
):
$ [[ 0xa000000000000000 -lt 0x6000000000000000 ]] && echo -1
-1
$ [[ 0xa00000000000000 -lt 0x600000000000000 ]] && echo -1 || echo 1
1
Per i numeri più grandi, allora si potrebbe usare LLONG_MAX
gdb
, ma sarà più lento funziona naturalmente:
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
In realtà @thkala answer funzionerà solo per numeri non maggiori di 0x7fffffffffffffff (LLONG_MAX). Per i numeri maggiori di LLONG_MAX potresti usare gdb, ma ovviamente funzionerà più lentamente. (guarda come questa informazione, non direttamente in risposta alla domanda, rientra in un ** commento **.) (ancora 300 caratteri a sinistra) –
- 1. Mostra i numeri esadecimali di un file
- 2. Numeri esadecimali C#
- 3. Modalità Emacs C: come si sintonizzano i numeri esadecimali evidenziati?
- 4. Stampa una matrice intera come numeri esadecimali
- 5. Come posso convertire i numeri esadecimali in numeri decimali nel calcolo di Emacs?
- 6. goniometro - confrontare i numeri
- 7. Come stampare numeri esadecimali in PHP o Java
- 8. Come stampare solo i valori esadecimali da hexdump senza numeri di riga o tabella ASCII?
- 9. Come posso convertire stringhe esadecimali in numeri in Perl?
- 10. Come si imposta EditText sull'input di soli numeri esadecimali?
- 11. ToString ("X") produce numeri esadecimali a una cifra
- 12. Conversione di numeri ottali ed esadecimali sulla base 10
- 13. XOR bit a bit di numeri esadecimali in pitone
- 14. Conversione di numeri esadecimali in stringhe su numeri negativi, in Perl
- 15. GDB può analizzare correttamente i numeri esadecimali in virgola mobile in stile C?
- 16. esadecimali - Swift
- 17. Lettura valori esadecimali in inglese
- 18. Come formattare i numeri su una stringa esadecimale?
- 19. Come posso confrontare i numeri di versione arbitrari?
- 20. Come visualizzare i valori esadecimali di array di byte?
- 21. Come convertire una NSString in valori esadecimali
- 22. elenco con i numeri decimali
- 23. Decompilatori esadecimali per PIC
- 24. errori Java con i numeri
- 25. Inserire valori esadecimali in MySql
- 26. SQL * Plus - la colonna numerica mostra i caratteri esadecimali
- 27. Come stampare interi come stringhe esadecimali utilizzando json.dumps() in Python
- 28. Generazione di numeri casuali con awk nella shell BASH
- 29. Utilizzo di espressioni regolari per confrontare i numeri
- 30. Come classificare i numeri sfocati con openCV
Cosa vuoi dire? Vuoi "0xdead" per essere uguale a "dEad" o "57005"? Maggiori dettagli sono necessari. –
e includi ciò che hai provato fino ad ora. In bocca al lupo. – shellter
in realtà sto scrivendo così .... se test $ 1 -eq "00" dove $ 1 è un valore esadecimale. – bd1257