Шестнадцатеричный счетчик

10

Изображение шестнадцатеричной таблицы преобразования с счетчиком

Шестнадцатеричная система счисления с основанием 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

Правила:

  • Числа могут быть разделены пробелами, символами табуляции или новыми строками.
  • Минимальное число, на которое вы должны перейти - 3048 (десятичное число).
    • Вы также можете заставить программу печатать номера навсегда, пока она не остановится.
  • Буквы могут быть в верхнем или нижнем регистре ( Aили a).
  • Не допускаются встроенные функции (которые напрямую влияют на шестнадцатеричные преобразования / подсчет).
  • Допускаются ведущие нули
  • Это может начаться с 1или0
  • Самый короткий код выигрывает!
фаза
источник
@ Sp3000 Насколько они встроены? Преобразование десятичной дроби в гекс?
фаза
@ Sp3000 Встроенные функции запрещены!
фаза
4
Как насчет общих функций преобразования базы?
Sp3000
1
@ Sp3000 Конечно (игнорируйте это, 15-символьное ограничение)
фаза
1
@ Маурис Да! Это наверняка будет интересно ...
фаза

Ответы:

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
Maltysen
источник
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

Python 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
XNOR
источник
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 символа, поэтому для сохранения 0123чего-либо еще недостаточно 4 символа .
xnor
5

JavaScript (ES6), 57 байт

Такой же подход, как и у Python.

for(i of c='0123456789ABCDEF')for(j of c)console.log(i+j)
rink.attendant.6
источник
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 +. Обязательно запустите программу с частично заполненным домашним экраном!

gengkev
источник
Вы помните, чтобы вычесть длину 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
Sok
источник
Вы можете сохранить пару байтов в -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++););}
BrainSteel
источник
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
Ypnypn
источник
jb^+jkUT<G6 2использует декартово произведение, чтобы сделать то же самое, все еще кажется пригодным для игры в гольф ...
FryAmTheEggman
2

Javascript ES6, 67 62 байта

(x=''.replace.bind('0123456789ABCDEF',/./g))(n=>x(o=>' '+n+o))
Джордж Райт
источник
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),!

Нет ... Свинка еще не умерла! :-)

zmerch
источник
2

CJam, 22 байта

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

Это работает вечно, и , таким образом, вероятно , один из редких случаев , где это хорошая идея не включать постоянную ссылку.

Sp3000
источник
oNoтакой же, как nв TIO.
Esolanging Fruit
2

TheC64Mini и Commodore BASIC (C64 / 128, PET, VIC-20, C16 / + 4) - используется 164 BASIC и токенизированных байта

 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 шестнадцатеричный счетчик

Шон Бебберс
источник
2

брейкфак , 2902 байта

Легко переиграть, но стоит попробовать

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

Попробуйте онлайн!

Кшиштоф Шевчик
источник
Это будет короче, если вы просто сгенерируете символы, 0-Fа затем жестко закодируете печать. Как вам удалось сделать это так долго?
Джо Кинг
@JoKing возможно, но я просто хотел повеселиться
Кшиштоф Шевчик,
Разве этот комментарий не является признанием того, что этот ответ не является серьезным претендентом на критерии победы в конкурсе?
pppery
1

Python 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, но в конечном итоге вылетает. Я не уверен, что это приемлемо.

Ypnypn
источник
1

J, 47 байт

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

печатает от 00 до ff

гар
источник
1
Гораздо более короткий путь:>{;~'0123456789abcdef'
Линн
Вау, это очень хорошо! Но почему вы не опубликовали это как ответ, это всего 22 байта!
Гар
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])

wolfhammer
источник
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
Брэд Гилберт b2gills
источник
1

С ++ 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<<" ";}
Yytsi
источник
Нет, все нормально, как есть. Какой компилятор вы используете? Я получаю 'string' is not a member of 'std'с моим.
Деннис
@ Денис Это хороший момент. Я всегда забываю, что для этого нужно включить строку как свою собственную. Исправлена.
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

Он-лайн тест (пропуск -rчерез URL не поддерживается - проверьте Raw Output самостоятельно.)

JQ 1,5: 56 символов

(53 символа кода + 3 символа командной строки.)

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

Это дает правильный вывод, но не является точным счетчиком: он не генерирует значения по порядку, а просто сортирует их после.

Он-лайн тест (пропуск -rчерез URL не поддерживается - проверьте Raw Output самостоятельно.)

manatwork
источник
ваша ссылка для jq не работает, и когда я исправил это, он говорит, что на github нет индексного файла: P
фаза
К сожалению. Спасибо @Phase. Я был слишком сосредоточен на количестве персонажей.
manatwork
1

Дьялог АПЛ , 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.
Адам
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

Zsh, 44 29 байт

-15 , через GammaFunction   попробуйте онлайн!

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

Оригинал (44 байта): g=0123456789abcdef;h=(${(s::)g});echo $^h$^h

roblogic
источник
1
Вместо того , чтобы преобразовать в массив, вы можете начать там: h=({0..9} {a..f}). 29 байт
GammaFunction
Спасибо! Zsh очень пригоден для игры в гольф :)
roblogic
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 просто нет встроенных или удобных методов для преобразования двоичных значений в строки для вывода.

Вывод:

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

640 КБ
источник
1

MUMPS , 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

Haskell, 52 байта

a="0123456789abcdef";main=mapM putStrLn$mapM id[a,a]
Линн
источник
0

Python 2 - 57 байт

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

Это выводит от 00 до FF с пробелами между ними.

Брайан
источник