พลเรือจัตวา VIC-20 / C64 / 128 และ TheC64Mini, 101 โทเค็นพื้นฐานไบต์
นี่คือรายชื่อที่สับสนโดยใช้ตัวย่อคำหลักพื้นฐาน Commodore:
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
จะสิ้นสุดลง