Contatore esadecimale


10

Immagine della tabella di conversione esadecimale con contatore

Hexadecimal è un sistema di conteggio base 16 che va da 0a f. Il tuo compito è creare un contatore che visualizzi questi numeri.

Esempio:

$ python counter.py
1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30

Regole:

  • I numeri possono essere separati da spazi, tabulazioni o nuove righe.
  • Il numero minimo a cui devi andare è 30(48 in decimale).
    • È inoltre possibile fare in modo che il programma stampi i numeri per sempre fino a quando non viene arrestato.
  • Le lettere possono essere maiuscole o minuscole ( Ao a).
  • Non sono consentite funzioni integrate (che influiscono direttamente sulle conversioni / conteggi esadecimali).
  • Sono consentiti zeri iniziali
  • Può iniziare da 1o0
  • Il codice più corto vince!

@ Sp3000 Quanto sono integrati? Conversione da decimale a esadecimale?
fase

@ Sp3000 Non sono consentite funzioni integrate!
fase

4
Che ne dici di funzioni generali di conversione di base allora?
Sp3000,

1
@ Sp3000 Certo (ignora questo, limite di 15 caratteri)
fase

1
@Mauris Sì! Sarà sicuramente interessante ...
fase

Risposte:


5

Pyth - 12 byte

Utilizza il prodotto cartesiano e ordina alla fine per ottenere nell'ordine corretto, quindi si unisce per spazi. Stampe 00-ffincluse.

jdS^s+<G6UT2

Provalo online qui .

jd             Join by spaces
 S             Sort lexiographically
  ^    2       Cartesian product repeat twice
   s+          Append then concatenate entire list
    <G6        First six of alphabet
    UT         Range 0-9


6

CJam, 21 14 byte

A,_6,'Af++m*S*

Stampa i numeri da 00 a 9F.

Provalo online nell'interprete CJam .

Come funziona

A,             e# Push [0 ... 9].
  _            e# Push a copy.
   6,          e# Push [0 ... 5].
     'Af+      e# Add 'A' to each. This pushes "ABCDEF".
         +     e# Concatenate. This pushes [0 ... 9 'A' ... 'F'].
          m*   e# Cartesian product. This pushes [[0 0] ... [9 'F'].
            S* e# Join, separating by spaces.

5

Python 2, 52

a=0
for b in'0123456789ABCDEF'*4:print`a`+b;a+=b>'E'

Stampa 00su 3F. Sfrutta il fatto che la prima cifra aè sempre un numero in questo intervallo. Passa attraverso quattro cicli della seconda cifra b, incrementando aogni volta che è la seconda cifra F.

Questo è un carattere più corto di quello più diretto

for a in'0123':
 for b in'0123456789ABCDEF':print a+b

n ='0123'dovrebbe salvare alcuni caratteri
Caridorc il

@Caridorc Come esattamente?
xnor

scrivendothing in n + restofstring
Caridorc il

@Caricord Non sono sicuro di cosa intendi, è più lungo da faren='0123' for a in n: for b in n+'456789ABCDEF':print a+b
xnor

2
@Caridorc Una scorciatoia in metallo che uso è che il risparmio su una variabile costa 4 caratteri, quindi ha bisogno di> 4 caratteri di risparmio per compensare, quindi salvare 4 caratteri per 0123qualcos'altro non è sufficiente.
xnor

5

JavaScript (ES6), 57 byte

Lo stesso approccio di quelli di Python suppongo.

for(i of c='0123456789ABCDEF')for(j of c)console.log(i+j)

4

TI-Basic, 63 byte

:For(I,0,4,16⁻¹
:Disp sub(" 0123456789ABCDEF",1+16fPart(I),2
:Output(7,1,int(I
:End

Sono 63 byte, secondo la schermata di gestione della memoria sulla mia calcolatrice, una TI-84 +. Assicurati di avviare il programma con una schermata principale parzialmente riempita!


Ti sei ricordato di sottrarre la lunghezza dell'intestazione a 9 byte e il nome del programma dalla lunghezza del codice?
lirtosiast,

4

Befunge-93, 57 byte

<_v#-*44:+1,*84,g2:\,g2:\
^ >$1+:9-!#@_0
0123456789ABCDEF

Stampa i numeri da 00a 8F. Se si preferisce che i programmi vengano eseguiti per sempre, la versione seguente non è terminante e genererà continuamente tutti i numeri da 00a FF.

<_v#-*44:+1,*84,g2:\,g2:\
^ >$1+:35*`!*0
0123456789ABCDEF

È possibile salvare un paio di byte in -98 con <_v # -f: +1, ', g2: \, g2: \. Non riesco a vedere molti miglioramenti oltre a quello.
Jacob,

0123456789ABCDEF01g::88+/2-0g,88+%0g,9,1+01p
Lynn,

Sono 44 byte. Si avvolge per sempre, come la tua seconda soluzione, e stampa risultati errati oltre la seconda 1F. Richiede un'implementazione (come l'implementazione di riferimento bef.c) che ignora silenziosamente i comandi sconosciuti ( ABCDEF).
Lynn,

(L'OP menziona che va bene che una soluzione "si rompa" da qualche parte dopo aver toccato 30- questo supererà lentamente lo stack, quindi suppongo che ci sia un punto di terminazione. Inoltre, l'output è separato da tabulazione; l'OP ha detto che andava bene. ) Oh, l'implementazione di Befunge che usi dovrebbe anche inizializzare l'intero toro 80x25 con spazi (ASCII 0x20).
Lynn,

@Mauris Per quanto riguarda il tuo commento sull'implementazione che deve istanziare l'intero toro con spazi, ciò influenzerebbe il conteggio dei byte per il mio codice presentato? Ho contato solo i personaggi necessari anziché riempire gli angoli con spazi.
Ho

2

C, 78 75 byte

x(y){return y+48+y/10*7;}f(j){for(j=0;printf("%c%c ",x(j/16),x(15&j++)););}

Definiamo una funzione f()da chiamare senza argomenti per la stampa e una funzione di supporto x(int). Questo si interrompe a FF.

Sorprendentemente, questo è un byte più corto del più ovvio:

char*s="0123456789ABCDEF";h(j){for(j=0;printf("%c%c ",s[j/16],s[15&j++]););}

Attenzione: non è consigliabile eseguire questo codice al di fuori di un ambiente di debug ...

test:

int main(int argc, char** argv) {
    f();
    return 0;
}

Produzione:

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 (...)

Naturalmente, l'approccio più robusto (e cheat-y) è questa funzione a 34 byte:

g(i){for(i=0;printf("%x ",i++););}

1
Ho iniziato a provare questo, ma la mia risposta era troppo simile. È possibile salvare diversi byte trasformando il primo% c in% d e omettendo la funzione. Tuttavia, è valido solo fino a 9F.
Alchymist,

return y+potrebbe essere y+=.
Jonathan Frech,

2

Pyth, 17 byte

VJs++kUT<G6FYJ+NY

Provalo qui

Come funziona:

         <G6         # "abcdef"
       UT            # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
      k              # an empty string (so + means concatenation, not addition)
   s++               # join them all ("0123456789abcdef")
  J                  # call this J
 V                   # for each N in J...
            FYJ      # for each Y in J...
               +NY   # print N and Y

jb^+jkUT<G6 2usa il prodotto cartesiano per fare la stessa cosa, sembra ancora giocabile ...
FryAmTheEggman

2

Javascript ES6, 67 62 byte

(x=''.replace.bind('0123456789ABCDEF',/./g))(n=>x(o=>' '+n+o))

2

J, 22 byte

>{;~'0123456789abcdef'

Conta a ff. Stampa una nuova riga in più tra ogni blocco di 0x10numeri, in questo modo:

...
0d
0e
0f

10
11
...

2

Parotite - 65 byte

S Q="0123456789ABCDEF" F I=1:1:16 F J=1:1:16 W $E(Q,I),$E(Q,J),!

No ... La parotite non è ancora morta! :-)


2

CJam, 22 byte

1{_GbA,6,'af++f=oNo)}h

Funziona per sempre, e quindi è probabilmente una delle rare volte in cui è una buona idea non includere un permalink.


oNoè lo stesso ndi TIO.
Esolanging Fruit,

2

TheC64Mini e Commodore BASIC (C64 / 128, PET, VIC-20, C16 / + 4) - 164 byte BASIC e tokenizzati utilizzati

 0 fOd=.to255:n=d:fOi=1to.stE-1:h%(i)=n/(16^i):n=n-(h%(i)*(16^i)):nEi:h$=""
 1 fOi=1to.stE-1:ifh%(i)<10tHh$=h$+cH(48+h%(i))
 2 ifh%(i)>9tHh$=h$+cH(55+h%(i))
 3 nEi:?h$"  ";:nEd

Stampa un doppio spazio dopo il numero esadecimale per allineare correttamente la stampa su 40/80 colonne e le 22 colonne su VIC-20.

Commodore Plus / 4 Hex counter innit


2

brainfuck , 2902 byte

Facile da battere, ma vale la pena provare

+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>[-]++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<<<[-]++++++++++++++++++++++++++++++++++++++++++++++++>[-]<[>+<<+>-]<[>+<-]<]>+<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>.>.>>>++++++++++++++++++++++++++++++++.[-]<<[-]<<[>>+<<<+>-]<[>+<-]>>>>>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++<<[<<<<+>>>>-]+>>[<<<<<<-<+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>[>>>>-<<<<[-]]>>>>>>[-]++<<[<<<<<+>+>>>>-]<<<<<[>>>>>+<<<<<-]>[<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>[-]]>>>>>>[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>[-]<[>+<<<+>>-]<<[>>+<<-]>>>>>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++<<[<<<<+>>>>-]+>>[<<<<<<-<+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>[>>>>-<<<<[-]]>>>>>>[-]+++<<[<<<<<+>+>>>>-]<<<<<[>>>>>+<<<<<-]>[<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>[-]]>>>>>>[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>[-]<<[>>+<<<+>-]<[>+<-]>>>[<<<<+>>>>-]+>[<<<<<-<+>>>>>>-]<<<<<<[>>>>>>+<<<<<<-]>[>>>>-<<<<[-]]>>>>>>+++++<<[<<<<<+>+>>>>-]<<<<<[>>>>>+<<<<<-]>[<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>[-]]>>>>>>[-]<<<<<<]>++++++<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>[-]<[>+<<<+>>-]<<[>>+<<-]>>>[<<<<+>>>>-]+>[<<<<<-<+>>>>>>-]<<<<<<[>>>>>>+<<<<<<-]>[>>>>-<<<<[-]]>>>>>>++++<<[<<<<<+>+>>>>-]<<<<<[>>>>>+<<<<<-]>[<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>[-]]>>>>>>[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>+>>>+<<<<<<<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[-]<<<<<<]>++<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>-----<<<[-]>>>[<<<+<+>>>>-]<<<<[>>>>+<<<<-]>>>>+++++>+<<<<<<<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[-]<<<<<<]>+++<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>-----<<[-]>>[<<+<<+>>>>-]<<<<[>>>>+<<<<-]>>>>+++++>+<<<<<<<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[-]<<<<<<]>++++<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>+>[-]++++++++++++++++++++++++++++++++++++++++++++++++>>>+<<<<<<<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[-]<<<<<<]>+++++<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>[-]<[>+<<<+>>-]<<[>>+<<-]>>>[<<<<+>>>>-]+>[<<<<<-<+>>>>>>-]<<<<<<[>>>>>>+<<<<<<-]>[>>>>-<<<<[-]]>>>>>>++++++<<<<<<+>>>>[<<<<[-]<+>>>>>-]<<<<<[>>>>>+<<<<<-]>[<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>[-]]>>>>>>[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]

Provalo online!


Questo sarebbe più breve se si generassero solo i caratteri 0-Fe si stampasse la stampa. Come sei riuscito a farcela così a lungo?
Jo King,

@JoKing forse, ma volevo solo divertirmi
Krzysztof Szewczyk

Quel commento non è un'ammissione che questa risposta non è un serio contendente per i criteri vincenti della sfida?
pepery

1

Python 2, 66 55 byte

Questo avrebbe dovuto essere l'approccio più ovvio per me ..

a='0123456789ABCDEF'
for x in a:
 for y in a:print x+y

Vecchio (66 byte) : tecnicamente questo provoca un errore dopo FF, ma raggiunge 30.

n=1;a='0123456789ABCDEF'
while 1:print a[n/16]*(n>15)+a[n%16];n+=1

Supponevo che la formattazione delle stringhe non fosse consentita poiché sono abbastanza sicuro che passerebbe attraverso la conversione di base, ma se fosse consentito, questo sarebbe di 29 byte:

n=1
while 1:print"%x"%n;n+=1

1

Java, 104 byte

char t[]="0123456789abcdef".toCharArray(),i;void f(){for(;i<99;)System.out.println(""+t[i/16]+t[i++%16]);}

Se i<99viene rimosso, raggiunge ancora 30, ma alla fine si blocca. Non sono sicuro che sia accettabile.


1

J, 47 byte

'0123456789abcdef'{~([:|:2 256$(]#i.),256$i.)16

stampa da 00 a ff


1
Un modo molto più breve:>{;~'0123456789abcdef'
Lynn,

Wow, va benissimo! Ma perché non l'hai pubblicato come risposta, sono solo 22 byte!
gar

1

JavaScript 74 72 65 60

//for(i=0,a="0123456789ABCDEF";i++<49;)console.log(a[i>>4]+a[i%16])
for(i=0;i++<48;)console.log((i>>4)+"0123456789ABCDEF"[i%16])


1

Perl 6 , 34 byte

Il più breve che posso inventare che non utilizza alcun tipo di conversione è:

put [X~] (|(0..9),|('A'..'F'))xx 2 # 34 bytes

stampa 00... FFspazio separato in ordine.
Se vuoi di più puoi scambiare 2con un numero maggiore.
(non usare un numero maggiore di 4 poiché concatena i valori insieme prima di emettere qualcosa, quindi userebbe una quantità significativa di RAM)


Il più breve che non smetterà mai di scrivere valori esadecimali

put [R~] (|(0..9),|('A'..'F'))[.polymod: 16 xx*]for 0..* # 56 bytes

Se printffosse permesso

printf "%X ",$_ for 0..* # 24 bytes

Se fosse consentita una funzione di conversione di base

put .base(16)for 0..* # 21 bytes

1

C ++ 14-135

#include<string>
#include<iostream>
void f(){std::string a="0123",b="0123456789ABCDEF";for(char c:a)for(char d:b)std::cout<<c<<d<<" ";}

No, va bene così. Che compilatore stai usando? Vado 'string' is not a member of 'std'con il mio.
Dennis,

@Dennis Questo è un buon punto. Dimentico sempre che richiede l'inclusione della stringa come propria. Fisso.
Yytsi,

1. Ricevo anche lo stesso errore cout. Immagino che iostreamanche tu abbia bisogno . 2. Stampa i numeri senza separazione. La sfida richiede spazi, tabulazioni o nuove righe. 3. Dovresti menzionare la versione richiesta di C ++.
Dennis,

1

jq 1,5: 65 59 caratteri

(Codice di 56 caratteri + opzione della riga di comando di 3 caratteri.)

[range(10)]+"a b c d e f"/" "|{a:.[],b:.}|"\(.a)\(.b[])"

Esecuzione di esempio:

bash-4.3$ jq -n -r '[range(10)]+"a b c d e f"/" "|{a:.[],b:.}|"\(.a)\(.b[])"' | head
00
01
02
03
04
05
06
07
08
09

Test online (il passaggio -rtramite URL non è supportato: controlla tu stesso l'output non elaborato).

jq 1,5: 56 caratteri

(Codice 53 caratteri + opzione riga comandi 3 caratteri.)

[[range(10)]+"a b c d e f"/" "|"\(.[])\(.[])"]|sort[]

Questo produce un output corretto, tuttavia non è esattamente un contatore: non genera i valori in ordine, ma li ordina solo dopo.

Test online (il passaggio -rtramite URL non è supportato: controlla tu stesso l'output non elaborato).


il tuo link per jq non funziona e quando l'ho risolto dice che non c'è un file indice su github: P
fase

Ops. Grazie @ Fase. Ero troppo concentrato sul conteggio dei personaggi.
arte

1

Dyalog APL , 12 byte

       ∘.,⍨16↑⎕D,⎕A
 00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F 
 10  11  12  13  14  15  16  17  18  19  1A  1B  1C  1D  1E  1F 
 20  21  22  23  24  25  26  27  28  29  2A  2B  2C  2D  2E  2F 
 30  31  32  33  34  35  36  37  38  39  3A  3B  3C  3D  3E  3F 
 40  41  42  43  44  45  46  47  48  49  4A  4B  4C  4D  4E  4F 
 50  51  52  53  54  55  56  57  58  59  5A  5B  5C  5D  5E  5F 
 60  61  62  63  64  65  66  67  68  69  6A  6B  6C  6D  6E  6F 
 70  71  72  73  74  75  76  77  78  79  7A  7B  7C  7D  7E  7F 
 80  81  82  83  84  85  86  87  88  89  8A  8B  8C  8D  8E  8F 
 90  91  92  93  94  95  96  97  98  99  9A  9B  9C  9D  9E  9F 
 A0  A1  A2  A3  A4  A5  A6  A7  A8  A9  AA  AB  AC  AD  AE  AF 
 B0  B1  B2  B3  B4  B5  B6  B7  B8  B9  BA  BB  BC  BD  BE  BF 
 C0  C1  C2  C3  C4  C5  C6  C7  C8  C9  CA  CB  CC  CD  CE  CF 
 D0  D1  D2  D3  D4  D5  D6  D7  D8  D9  DA  DB  DC  DD  DE  DF 
 E0  E1  E2  E3  E4  E5  E6  E7  E8  E9  EA  EB  EC  ED  EE  EF 
 F0  F1  F2  F3  F4  F5  F6  F7  F8  F9  FA  FB  FC  FD  FE  FF 

Per una volta, APL corrisponde a Pyth.
Adám,

1

Malbolge , 900 byte

Essere migliorata...

D'``@"\7}|X9E1gwuR21=p(:9%IZYEg}eA/ya>O_)([Zvotm3qponmfN+Lbg`ed]\"CB^W\Uy<;WVONSLp3ONMLEDhH*)?>b%A@?87[;:9876/S3,P0/.-&J$)"'~D|{"y?}|utyr8potmrqpi/mfN+Lbg`e^$bDZ_^]VzZSXQVUTSLp3ONMLEDhH*)EDCB;@?8\6|:32V6v.32+O)o'&J*)i'&%|Bcb~w|u;yxwvutVrkj0nmfN+iKg`_%cE[`Y}@V[ZYXWPtT6LKJImM/KJIBAe(D=<A:98\[;{32V6v.-,P0).',%I)"!E%|#"y?w_{ts9Zvutsrkpi/mfNjihg`e^$b[Z~X]\[ZYRv98TSLKoO10FKDh+GFE>CB;_?>=}|49870/.R2+*Non&%I#"!&%${A!~}_u;yxqpo5mrqpoh.lkdibgf_%]\[!_XW{[ZYXQPt7SRQPOHGkKJIHAF?cC<;@?8\6;492V6v.-,P*p.'K+$j"'~D|#"y~wv<]yxqvutsrk1onmfN+cba`&d]#DZ_^]VzTSXQVOs65QJINGkE-IBAe(D=<A:98\654981Uv.32+*)M-,%k#(!E}$#"!x>v{t:xwputm3kpoh.fN+Lbg`ed]\"!Y^]VzZYXQVOsS54JImMFKJIHAe?>C<`@?87[;{32V05.-2+O)o-,+$H('&}Cdzy~wv<]sxqvonm3k1oQmf,jihgfeG]#a`_X|V[TxXQPUTMLp3ONMLEDhH*)ED=a;@?>76;4X816/43,P*).',%I#i!&}|Bcb~w|u;yxwputm3qSong-kjihgfH%]\a`_XW{UTYXQuUTMRKPOHlFKDhBAe?>=B;_9>=6Z:981Uv.32+*)M-,%k#(!E%$#c!x>|u;yxZpo5srqSi/z

Provalo online!


1

Zsh, 44 29 byte

-15 , tramite GammaFunction   provalo online!

h=({0..9} {a..f});echo $^h$^h

Originale (44 byte): g=0123456789abcdef;h=(${(s::)g});echo $^h$^h


1
Invece di conversione in matrice, si può cominciare da lì: h=({0..9} {a..f}). 29 byte
Funzione gamma

Grazie! zsh è molto golfabile :)
roblogic


1

8088 Assembly, IBM PC DOS, 34 byte

Byte xxd:

00000000: 43e8 0900 e806 00b0 20cd 10eb f3b1 04d2  C....... .......
00000010: c38a c324 0f3c 0a7c 0204 0704 30b4 0ecd  ...$.<.|....0...
00000020: 10c3

smontato:

        BYTE_LOOP: 
43          INC  BX             ; increment counter  
E8 0009     CALL HB             ; display high byte 
E8 0006     CALL HB             ; display low byte 
B0 20       MOV  AL, ' '        ; display space delimiter
CD 10       INT  10H            ; call BIOS, write char to console 
EB F3       JMP  BYTE_LOOP      ; keep looping forever
        HB PROC 
B1 04       MOV  CL, 4          ; set up bitshift for 4 bits 
D2 C3       ROL  BL, CL         ; shift counter left 4 bits 
8A C3       MOV  AL, BL         ; put counter into AL 
24 0F       AND  AL, 0FH        ; isolate nibble 
3C 0A       CMP  AL, 0AH        ; is nibble A-F? 
7C 02       JL   NOT_ALPHA      ; if not, skip adjustment 
04 07       ADD  AL, 'A'-'9'-1  ; adjust ASCII value to A-F 
        NOT_ALPHA: 
04 30       ADD  AL, '0'        ; decimal to binary convert
B4 0E       MOV  AH, 0EH        ; BIOS tty function
CD 10       INT  10H            ; call BIOS, write char to console 
C3          RET                 ; return to program
        HB ENDP

DOS autonomo DOS eseguibile, l'output è per console e continuerà a visualizzare fino a quando il programma non viene arrestato. Solo un programma di manipolazione ASCII scratch qui. Non esistono semplicemente metodi integrati o di convenienza nelle API x86 o DOS / BIOS per convertire i valori binari in stringhe per l'output.

Produzione:

inserisci qui la descrizione dell'immagine


1

MUMPS , 57 byte

f i=1:1:48 w $tr(i\16,0),$e("0123456789abcdef",i#16+1),!

Produzione

>d ^xmsdgolf
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
10
11
..
28
29
2a
2b
2c
2d
2e
2f
30

Spiegazione

f i=1:1:48                     ; loop from 1 to 48
w $tr(i\16,0)                  ; print i div 16, and ditch any zeros
$e("0123456789abcdef",i#16+1)  ; extract the nth character from the string, where n is i mod 16 + 1
!                              ; crlf

0

Haskell, 52 byte

a="0123456789abcdef";main=mapM putStrLn$mapM id[a,a]

0

Python 2 - 57 byte

h='0123456789ABCDEF'
' '.join([i+j for i in h for j in h])

Questo produce da 00 a FF, con spazi tra.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.