Base58Check encoding: Difference between revisions

→‎{{header|RPL}}: improved processing of large binary integers
(→‎{{header|RPL}}: improved processing of large binary integers)
 
(3 intermediate revisions by 2 users not shown)
Line 1,442:
'ECAC89CAD93923C02321'x ───► 000EJDM8drfXA6uyA
'10C8511E'x ───► Rt5zm
</pre>
 
=={{header|RPL}}==
Binary numbers cannot exceed 64 bits in RPL.
{{works with|HP|48G}}
« "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" → alphabet
« "" 1
'''IF''' 3 PICK TYPE 10 == '''THEN''' SF '''ELSE''' CF '''END'''
'''WHILE''' SWAP #0 DUP2 + ≠ '''REPEAT'''
58
'''IF''' 1 FS? '''THEN''' / LASTARG 3 PICK * - B→R SWAP
'''ELSE''' MOD LASTARG / IP '''END'''
alphabet ROT 1 + DUP SUB
ROT +
'''END''' DROP
» » '<span style="color:blue">→B58</span>' STO <span style="color:grey">''@ ( n or #n → "code" }''</span>
« { 6946892355 #61 #626262 #636363 #516B6FCD0F #572E4794 #10C8511E }
1 « <span style="color:blue">→B58</span> » DOLIST
» '<span style="color:blue">TASK</span>' STO
{{out}}
<pre>
1: { "Base58" "2g" "a3gV" "aPEr" "ABnLTmg" "3EFU7m" "Rt5zm" }
</pre>
 
Line 1,676 ⟶ 1,699:
{{libheader|Wren-big}}
{{libheader|Wren-fmt}}
<syntaxhighlight lang="ecmascriptwren">import "./big" for BigInt
import "./fmt" for Fmt
 
var alphabet = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
1,151

edits