Onaltılı Sayıcı


10

Sayaçlı Onaltılı Dönüşüm Tablosu resmi

Hexadecimal , 0ila 16 arasında değişen bir temel 16 sayma sistemidir f. İşiniz bu sayıları gösterecek bir sayaç yapmaktır.

Misal:

$ 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

Kurallar:

  • Sayılar boşluklar, sekmeler veya yeni satırlarla ayrılabilir.
  • Gitmeniz gereken minimum sayı 30(ondalık olarak 48).
    • Programın numaralarını durdurulana kadar sonsuza kadar yazdırabilirsiniz.
  • Harfler büyük veya küçük harf olabilir ( Aveya a).
  • İzin verilen yerleşik işlevlere izin verilmez (onaltılık dönüşümleri / saymayı doğrudan etkiler).
  • Baştaki sıfırlara izin verilir
  • Bu başlayabilir 1veya0
  • En kısa kod kazanır!

@ Sp3000 Ne kadar yerleşikler? Ondalık sayıyı onaltılık biçime dönüştürüyor musunuz?
faz

@ Sp3000 Yerleşik işlevlere izin verilmez!
faz

4
Peki genel temel dönüşüm işlevleri hakkında ne dersiniz?
Sp3000

1
@ Sp3000 Elbette (bunu görmezden gelin, 15 karakter sınırı)
faz

1
@Mauris Evet! Bu kesin olacak ...
faz

Yanıtlar:


5

Pyth - 12 bayt

Kartezyen ürünü kullanır ve doğru sırayla elde etmek için sonunda sıralanır, ardından boşluklarla birleşir. Baskılar 00-ffdahil.

jdS^s+<G6UT2

Burada çevrimiçi deneyin .

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 bayt

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

00 - 9F arasındaki sayıları yazdırır.

CJam yorumlayıcısında çevrimiçi deneyin .

Nasıl çalışır

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'

Baskılar 00için 3F. İlk rakamın aher zaman bu aralıktaki bir sayı olması gerçeğinden yararlanır . İkinci basamak dört döngü boyunca Döngüler barttırılarak aikinci basamak olduğu zaman F.

Bu daha doğrudan olandan daha kısa bir karakter

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

n ='0123'bazı karakterleri kurtarmalı
Caridorc

@Caridorc Tam olarak nasıl?
xnor

yazarakthing in n + restofstring
Caridorc

@Caricord Ne demek istediğinden emin değilim, yapmak daha uzunn='0123' for a in n: for b in n+'456789ABCDEF':print a+b
xnor

2
@Karidorc Kullandığım metal bir kısayol, değişkene tasarruf etmenin 4 karaktere mal olması, bu nedenle telafi etmek için 4 karakterden fazla tasarrufa ihtiyaç duyması, bu nedenle 0123başka bir şey için 4 karakter kaydetmek yeterli değil.
xnor

5

JavaScript (ES6), 57 bayt

Sanırım Python'larla aynı yaklaşım.

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

4

TI-Basic, 63 bayt

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

Hesap makinemdeki bellek yönetimi ekranına göre bir TI-84 + 63 bayt. Programı kısmen doldurulmuş bir ana ekranla başlattığınızdan emin olun!


9 baytlık üstbilginin uzunluğunu ve program adını kod uzunluğundan çıkarmayı hatırladınız mı?
lirtosiast

4

Befunge-93, 57 bayt

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

Numaraları yazdırır 00için 8F. Programlarınızın sonsuza kadar çalışmasını tercih ederseniz, aşağıdaki sürüm sonlandırılmaz ve ile arasındaki tüm sayıları sürekli olarak 00verir FF.

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

-98'de <_v # -f: +1, ', g2: \, g2: \ ile birkaç bayt kaydedebilirsiniz. Bunun ötesinde pek çok gelişme göremiyorum.
Jacob

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

Bu 44 bayt. Sonsuz bir şekilde, ikinci çözümünüz gibi döngü yapar ve ikinci 1F'den sonra yanlış sonuçlar yazdırır. bef.cBilinmeyen komutları ( ABCDEF) sessizce yok sayan bir uygulama (referans uygulaması gibi ) gerektirir .
Lynn

(OP, bir çözümün vurmanın ötesinde bir yerde "kırılması" için uygun olduğunu belirtiyor 30- bu yavaşça yığını taşacak, bu yüzden bir sonlandırma noktası olduğunu varsayalım. Ayrıca, çıktı sekmeyle ayrılmış; OP bunun iyi olduğunu söyledi. ) Ah, kullandığınız Befunge uygulaması 80x25 torusun tamamını boşluklu (ASCII 0x20) başlatmalıdır .
Lynn

@Mauris Tüm torusu boşluklarla başlatması gereken uygulama hakkındaki yorumunuzla ilgili olarak, bu sunulan kodumun bayt sayısını etkiler mi? Köşeleri boşluklarla doldurmak yerine sadece gerekli karakterleri saydım.
Sok

2

C, 78 75 bayt

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

f()Yazdırma argümanı olmadan çağrılacak bir fonksiyon ve bir yardımcı fonksiyon tanımlarız x(int). Bu kırılıyor FF.

Şaşırtıcı bir şekilde, bu daha açık olandan bir bayt daha kısa:

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

Uyarı: Bu kodu bir hata ayıklama ortamının dışında çalıştırmanız önerilmez ...

Test yapmak:

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

Çıktı:

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 (...)

Tabii ki, daha sağlam (ve hile-y) yaklaşım bu 34 baytlık işlevdir:

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

1
Bunu denemeye başladı ama cevabım çok benzerdi. İlk% c 'yi% d' ye yaparak ve işlevi atlayarak birkaç bayt kaydedebilirsiniz. O zaman sadece 9F'ye kadar geçerlidir.
Simyacı

return y+olabilir y+=.
Jonathan Frech

2

Pyth, 17 bayt

VJs++kUT<G6FYJ+NY

Burada deneyin

Nasıl çalışır:

         <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 2aynı şeyi yapmak için kartezyen ürünü kullanır, yine de golf gibi görünüyor ...
FryAmTheEggman

2

Javascript ES6, 67 62 bayt

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

2

J, 22 bayt

>{;~'0123456789abcdef'

Sayar ff. Her 0x10sayı bloğu arasına fazladan yeni bir satır yazdırır , şöyle:

...
0d
0e
0f

10
11
...

2

Kabakulak - 65 bayt

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

Hayır ... Kabakulak henüz ölmedi! :-)


2

CJam, 22 bayt

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

Bu sonsuza dek sürer ve muhtemelen bir kalıcı bağlantıyı dahil etmemenin iyi bir fikir olduğu nadir zamanlardan biridir .


oNonTIO ile aynıdır .
Esolanging Fruit

2

C64Mini ve Commodore BASIC (C64 / 128, PET, VIC-20, C16 / + 4) - 164 BASIC ve Tokenize bayt kullanılır

 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

VIC-20'deki 22 sütunun yanı sıra 40/80 sütunda baskıyı güzel bir şekilde hizalamak için onaltılık sayıdan sonra bir çift boşluk yazdırır.

Commodore Plus / 4 Hex sayaç innit


2

brainfuck , 2902 bayt

Outgolf için kolay, ama denemeye değer

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

Çevrimiçi deneyin!


Karakterleri yeni oluşturduysanız 0-Fve ardından yazdırmayı sabit olarak kodladıysanız, bu daha kısa olacaktır . Bunu bu kadar uzatmayı nasıl başardınız?
Jo King

@JoKing muhtemelen, ama ben sadece eğlenmek istedim
Krzysztof Szewczyk

Bu yorum, bu cevabın mücadelenin kazanma kriterleri için ciddi bir yarışmacı olmadığını kabul etmek değil mi?
pppery

1

Python 2, 66 55 Bayt

Bu benim için en belirgin yaklaşım olmalıydı ..

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

Eski (66 Bayt) : Teknik olarak bu sonradan bir hataya neden olur FF, ancak ulaşır 30.

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

Temel dönüşümden geçeceğinden emin olduğumdan dize biçimlendirmesine izin verilmediğini varsaydım, ancak izin verildiyse bu 29 bayt olurdu:

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

1

Java, 104 bayt

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

Eğer i<99kaldırılır, hala 30 ulaşır, fakat sonunda çöker. Bunun kabul edilebilir olup olmadığından emin değilim.


1

J, 47 bayt

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

00 - ff arası yazdırır


1
Çok daha kısa bir yol:>{;~'0123456789abcdef'
Lynn

Vay canına, bu çok iyi! Ama neden cevap olarak göndermediniz, sadece 22 bayt!
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 bayt

Ben herhangi bir dönüşüm kullanmaz ile gelip en kısa:

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

yazdırır 00... FFboşluk sırasıyla ayrılmış.
Daha fazlasını isterseniz daha 2büyük bir numara için değiştirebilirsiniz .
(herhangi bir çıktı vermeden önce değerleri bir araya getirdiği için 4'ten büyük bir sayı kullanmayın, bu nedenle önemli miktarda RAM kullanır)


Onaltılık değerler yazmayı asla bırakmayacak en kısa

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

printfİzin verildiyse

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

Bir temel dönüştürme işlevine izin verildiyse

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<<" ";}

Hayır, olduğu gibi iyi. Hangi derleyiciyi kullanıyorsunuz? Benimle geliyorum 'string' is not a member of 'std'.
Dennis

@Dennis Bu iyi bir nokta. Her zaman kendi dize dahil gerektiren unuturum. Sabit.
Yytsi

1. Ben de aynı hatayı alıyorum cout. Sanırım sen de ihtiyacın var iostream. 2. Numaraları ayrılmadan yazdırır. Zorluk, boşluklar, sekmeler veya yeni satırlar gerektirir. 3. Gerekli C ++ sürümünü belirtmelisiniz.
Dennis

1

jq 1.5: 65 59 karakter

(56 karakter kod + 3 karakter komut satırı seçeneği.)

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

Örnek çalışma:

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

Çevrimiçi test (Geçme-rURL'den desteklenmez - Ham Çıktıyı kendiniz kontrol edin.)

jq 1.5: 56 karakter

(53 karakter + 3 karakter komut satırı seçeneği.)

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

Bu doğru çıktı üretir, ancak tam olarak bir sayaç değildir: değerleri sırayla oluşturmaz, sadece sonra sıralar.

Çevrimiçi test ( -rURL'den geçme desteklenmez - Ham Çıktıyı kendiniz kontrol edin.)


jq için bağlantınız çalışmıyor ve bunu düzelttiğimde github'da bir dizin dosyası olmadığını söylüyor: P
faz

Hata. Teşekkürler @Phase. Karakter sayısına çok yoğunlaşmıştım.
manatwork

1

Dyalog APL , 12 bayt

       ∘.,⍨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 

Bir defasında APL, Pyth ile eşleşir.
Adám

1

Malbolge , 900 bayt

Geliştirilecek ...

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

Çevrimiçi deneyin!


1

Zsh, 44 29 bayt

-15 , GammaFunction üzerinden   online deneyin!

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

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


1
Bunun yerine diziye dönüştürme, buradan başlayabilirsiniz: h=({0..9} {a..f}). 29 bayt
GammaFunction

Teşekkürler! zsh çok golf edilebilir :)
roblogic


1

8088 Montajı, IBM PC DOS, 34 bayt

Bayt xxd:

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

unassembled:

        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

Bağımsız PC DOS exactable, çıktı konsol ve program durdurulana kadar görüntülemeye devam edecektir. Burada sadece bir çizik ASCII manipülasyon programı. X86 veya DOS / BIOS API'lerinde ikili değerleri çıktı için dizelere dönüştürmek için yerleşik veya kolaylık yöntemi yoktur.

Çıktı:

resim açıklamasını buraya girin


1

MUMPS , 57 bayt

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

Çıktı

>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

açıklama

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 bayt

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

0

Python 2-57 bayt

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

Bu, 00 ile FF arasında, aralarında boşluk olacak şekilde çıktı verir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.