Commodore VIC-20 / C64 / 128 і TheC64Mini, 101 токенізований байків BASIC
Ось неясний список, використовуючи скорочення ключових слів Commodore BASIC:
0dEfnb(x)=sG(xaNb):inputa$:fOi=1tolen(a$):b=64:c$=mI(a$,i,1):fOj=0to6
1?rI(str$(fnb(aS(c$))),1);:b=b/2:nEj:?" ";:nE
Ось для пояснень - це непрозорий символічний перелік:
0 def fn b(x)=sgn(x and b)
1 input a$
2 for i=1 to len(a$)
3 let b=64
4 let c$=mid$(a$,i,1)
5 for j=0 to 6
6 print right$(str$(fn b(asc(c$))),1);
7 let b=b/2
8 next j
9 print " ";
10 next i
Функція, fn b
оголошена на нульовому рядку, приймає числовий параметр, x
який AND
редагується зі значенням b
; Потім SGN використовується для перетворення x and b
в 1
або0
.
Перший рядок приймає рядковий вхід до змінної a$
, і цикл починається (позначається i
) довжиною цього входу. b
представляє кожен біт від 6-го до 0-го біта. c$
приймає кожен символ рядка в положенняi
.
рядок 5 починає цикл для перевірки кожного бітового положення; right$
використовується в рядку 6 для усунення проблеми з автоматичним форматуванням, коли Commodore BASIC відображає число, перетворюючи висновок у fn b
рядок;asc(c$)
перетворює поточний символ у його код ascii у вигляді десяткового значення.
Рядок 7 представляє наступне бітове значення. Цикл j
закінчується перед друком пробілу, потім i
закінчується останній цикл .