Last active
March 19, 2019 09:32
Star
You must be signed in to star a gist
Intro to study of number basis
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Red [ | |
Author: "Toomas Vooglaid" | |
Date: 19-Mar-2019 | |
Title: "Compare bases" | |
Purpose: {Introduction to study of number basis} | |
] | |
context [ | |
set-bits: does [forall bits [pan/pane/(index? bits)/data: make logic! to-integer to-string bits/1]] | |
hexa: charset [#"0" - #"9" #"A" - #"F"] | |
bit: pan: num: bin: bits: hex: bi: hx: none | |
view [ | |
title "Compare bases" | |
style bit: check 22x25 [ | |
num/data: to-integer hx: debase/base bin/text: rejoin collect [ | |
foreach-face pan [ | |
keep make integer! face/data | |
] | |
] 2 | |
hex/text: enbase/base hx 16 | |
] | |
pan: panel [ | |
origin 0x0 | |
bit "7" bit "6" bit "5" bit "4" bit "3" bit "2" bit "1" bit "0" | |
] return | |
text "DEC:" 24 | |
num: field 30 on-enter [ | |
either all [face/data >= 0 face/data <= 255] [ | |
bin/text: bits: take/last/part enbase/base hx: to-binary face/data 2 8 | |
hex/text: take/last/part enbase/base hx 16 2 | |
set-bits | |
][cause-error 'user 'message ["Enter integer 0..255"]] | |
] | |
text "BIN:" 22 | |
bin: field 70 on-enter [ | |
either parse face/text [8 [#"1" | #"0"]] [ | |
bits: face/text | |
hex/text: enbase/base hx: debase/base bits 2 16 | |
num/data: to-integer hx | |
set-bits | |
][cause-error 'user 'message ["Enter 8 bits (1 or 0)"]] | |
] | |
text "HEX:" 24 | |
hex: field 25 on-enter [ | |
either parse face/text [2 hexa] [ | |
num/data: to-integer hx: debase/base face/text 16 | |
bin/text: bits: enbase/base hx 2 | |
set-bits | |
][cause-error 'user 'message ["Enter hexadecimal 00..FF"]] | |
] | |
] | |
] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment