Шестидесятковий лічильник


10

Зображення таблиці Hex Conversion w / counter

Шістнадцятковий - це система підрахунку 16 базових даних, яка переходить від 0до f. Ваше завдання - зробити лічильник, який відображатиме ці цифри.

Приклад:

$ 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

Правила:

  • Номери можуть бути розділені пробілами, вкладками або новими рядками.
  • Мінімальна кількість, яку ви повинні пройти, - це 30(у десятковій частині).
    • Ви також можете робити номери програми для друку назавжди, поки вона не зупиниться.
  • Букви можуть бути великими або малими ( Aабо a).
  • Не допускаються вбудовані функції (які безпосередньо впливають на шістнадцяткову конверсію / підрахунок).
  • Дозволені нульові нулі
  • Це може починатися з 1або0
  • Найкоротший код виграє!

@ Sp3000 Наскільки вони вбудовані? Перетворення десяткової у шестигранну?
фаза

@ Sp3000 Немає вбудованих функцій!
фаза

4
Як щодо загальних функцій перетворення базових даних тоді?
Sp3000

1
@ Sp3000 Звичайно (ігноруйте це, обмеження 15 символів)
фаза

1
@Mauris Так! Це впевнене буде цікавим ...
етап

Відповіді:


5

Pyth - 12 байт

Використовує декартовий продукт і сортує в кінці, щоб навести правильний порядок, потім з'єднується пробілами. Друкує 00-ffвключно.

jdS^s+<G6UT2

Спробуйте його онлайн тут .

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 байт

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

Друкує числа від 00 до 9F.

Спробуйте його в Інтернеті в інтерпретаторі CJam .

Як це працює

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

Пітон 2, 52

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

Друкує 00до 3F. Скористається тим, що перша цифра a- це завжди число в цьому діапазоні. Проведіть петлі через чотири цикли другої цифри b, збільшуючи aкожен раз, коли є друга цифра F.

Це на один знак коротше, ніж більш пряме

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

n ='0123'слід врятувати кілька символів
Caridorc

@Caridorc Як саме?
xnor

написавthing in n + restofstring
Caridorc

@Caricord Не впевнений, що ти маєш на увазі, це робити довшеn='0123' for a in n: for b in n+'456789ABCDEF':print a+b
xnor

2
@Caridorc Металевий ярлик, який я використовую, полягає в тому, що заощадження до змінної коштує 4 символи, тому для компенсації потрібно> 4 символи економії, тому заощадження 4 символів 0123для чогось іншого недостатньо.
xnor

5

JavaScript (ES6), 57 байт

Такий же підхід, як і Python, я думаю.

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

4

TI-Basic, 63 байти

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

Це 63 байти, згідно з екраном управління пам'яттю на моєму калькуляторі, TI-84 +. Не забудьте запустити програму з частково заповненого домашнього екрану!


Чи пам'ятали ви віднімати довжину 9-байтового заголовка та назву програми від кодової довжини?
lirtosiast

4

Befunge-93, 57 байт

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

Друкує числа від 00до 8F. Якщо ви віддаєте перевагу програми для запуску назавжди, нижче версія не є термінатором і буде постійно виводити все числа від 00до FF.

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

Ви можете зберегти пару байтів у -98 за допомогою <_v # -f: +1, ', g2: \, g2: \. Не вдається побачити багато покращень.
Яків

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

Це 44 байти. Це циклічно назавжди, як ваше друге рішення, і друкує неправильні результати повз другий 1F. Для цього потрібна реалізація (наприклад, реалізація посилань bef.c), яка мовчки ігнорує невідомі команди ( ABCDEF).
Лінн

(ОП згадує, що добре "вирішити" десь минуле попадання 30- це буде повільно переповнювати стек, тому я вважаю, що є якийсь момент припинення. Також вихід розділений на вкладки; ОП сказав, що це добре. ) О, використовувана вами реалізація Befunge також повинна ініціалізувати весь торус розміром 80x25 з пробілами (ASCII 0x20).
Лінн

@Mauris Що стосується Вашого коментаря щодо реалізації, що потребує екземпляра всього тору з пробілами, чи вплине це на кількість байтів для мого коду, що подається? Я лише порахував потрібні символи, а не заповнив кути пробілами.
Сок

2

C, 78 75 байт

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

Ми визначаємо функцію, f()яку потрібно викликати, без аргументів для друку та функції помічника x(int). Це перерва в FF.

Дивно, але цей байт коротший, ніж більш очевидний:

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

Попередження: не рекомендується запускати цей код поза середовищем налагодження ...

Тестування:

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

Вихід:

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

Звичайно, більш надійним (і чіт-у) підходом є ця 34-байтова функція:

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

1
Почав пробувати це, але моя відповідь була занадто схожа. Ви можете зберегти кілька байтів, зробивши перший% c в% d і опустивши функцію. Однак він дійсний лише до 9F.
Алхімік

return y+можливо, це може бути y+=.
Джонатан Фрех

2

Pyth, 17 байт

VJs++kUT<G6FYJ+NY

Спробуйте тут

Як це працює:

         <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 2використовує декартовий продукт, щоб зробити те саме, все ще здається зіграним ...
FryAmTheEggman


2

J, 22 байти

>{;~'0123456789abcdef'

Розраховує до ff. Друкує додатковий новий рядок між кожним блоком 0x10чисел, наприклад:

...
0d
0e
0f

10
11
...

2

Свинка - 65 байт

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

Ні ... свинка ще не вмерла! :-)


2

CJam, 22 байти

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

Це працює вічно, і, отже, це, мабуть, один з рідкісних часів, коли не рекомендується включати постійне посилання.


oNoте саме, що і nв TIO.
Esolanging Fruit

2

TheC64Mini та Commodore BASIC (C64 / 128, PET, VIC-20, C16 / + 4) - 164 базових та токенізованих байтів

 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

Друкує подвійний пробіл після шістнадцяткового номера, щоб добре вирівняти друк на 40/80 стовпчиків, а також 22 колонки на VIC-20.

Commodore Plus / 4 Hex лічильник вкладки


2

мозковий ебать , 2902 байт

Легко перевершити голівку, але варто дати удар

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

Спробуйте в Інтернеті!


Це буде коротше, якби ви просто генерували символи, 0-Fа потім твердо кодували друк. Як вам вдалося це зробити так довго?
Джо Кінг

@JoKing можливо, але я просто хотів повеселитися
Krzysztof Szewczyk

Хіба цей коментар не визнає, що ця відповідь не є серйозним претендентом на переможні критерії виклику?
pppery

1

Пітон 2, 66 55 байт

Це справді мав би бути найбільш очевидним підходом до мене ..

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

Старий (66 байт) : технічно це спричиняє помилку після FF, але воно досягає 30.

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

Я припустив, що форматування рядків не було дозволено, оскільки я майже впевнений, що це пройде базову конверсію, але якби це було дозволено, це буде 29 байт:

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

1

Java, 104 байти

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

Якщо i<99вилучено, воно все ще досягає 30, але з часом виходить з ладу. Я не впевнений, чи це прийнятно.


1

J, 47 байт

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

відбитки 00 до ff


1
Набагато коротший шлях:>{;~'0123456789abcdef'
Лінн

Ого, це дуже добре! Але чому ви не опублікували це як відповідь, це всього 22 байти!
гар


1

Perl 6 , 34 байти

Найкоротше, що я можу придумати, що не використовує будь-якого типу конверсії, це:

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

відбитки 00... FFпростір розділено по порядку.
Якщо ви хочете більше, можете поміняти 2на більшу кількість.
(не використовуйте число, яке перевищує 4, оскільки воно об'єднує значення перед тим, як виводити що-небудь, тому воно буде використовувати значну кількість оперативної пам’яті)


Найкоротший, який ніколи не припинить писати шістнадцяткові значення

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

Якби printfдозволили

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

Якщо була дозволена функція перетворення бази

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

Ні, це добре, як є. Який компілятор ви використовуєте? Я отримую 'string' is not a member of 'std'з моїм.
Денніс

@Dennis Це хороший момент. Я завжди забуваю, що для цього потрібно включати рядки як власні. Виправлено.
Yytsi

1. Я також отримую таку ж помилку cout. Я думаю, вам iostreamтеж потрібно . 2. Він друкує числа без відокремлення. Для виклику потрібні пробіли, вкладки або нові рядки. 3. Ви повинні згадати необхідну версію C ++.
Денніс

1

jq 1,5: 65 59 символів

(Код 56 символів + параметр командного рядка з 3 символами.)

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

Проба зразка:

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

On-line тест (Проходження -rURL-адреси не підтримується - перевірте Raw Output.)

jq 1,5: 56 символів

(Код 53 символів + варіант командного рядка з 3 символами.)

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

Це дає правильний вихід, однак це не зовсім лічильник: він не генерує значення в порядку, а лише сортує їх після.

On-line тест (Проходження -rURL-адреси не підтримується - перевірте Raw Output.)


ваше посилання на jq не працює, і коли я його зафіксував, він каже, що на github немає файлу індексу: P
фаза

На жаль Дякую @Phase. Я був занадто зосереджений на кількості персонажів.
манатурка

1

Діалог APL , 12 байт

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

Один раз APL відповідає Pyth.
Adám

1

Malbolge , 900 байт

Щоб покращитись ...

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

Спробуйте в Інтернеті!




1

8088 Асамблея, IBM PC DOS, 34 байти

Байтів xxd:

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

Не зібрано:

        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 непридатний, вихід на консоль і буде тримати показ до тих пір, поки програма не буде зупинена. Тут просто програма для маніпулювання ASCII. Просто немає вбудованих або зручних методів в API x86 або DOS / BIOS для перетворення бінарних значень у рядки для виведення.

Вихід:

введіть тут опис зображення


1

МУМПА , 57 байт

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

Вихідні дані

>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

Пояснення

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

Python 2 - 57 байт

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

Це виводить 00 на FF, з пробілами між ними.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.