FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
smallbasic.github.io/samples/node/116.bas at master · smallbasic/smallbasic.github.io · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
smallbasic
/
smallbasic.github.io
Public
Notifications
You must be signed in to change notification settings
Fork
4
Star
4
Code
Issues
0
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
smallbasic.github.io
/
samples
/
node
/
116.bas
Copy path
More file actions
More file actions
Latest commit
History
History
History
135 lines (134 loc) · 3.16 KB
Breadcrumbs
smallbasic.github.io
/
samples
/
node
/
116.bas
Copy path
File metadata and controls
135 lines (134 loc) · 3.16 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
'
#sec:Main
base0
=
10
show0
=
10
REPEAT
PRINT
"
*
"
;
LINEINPUT x
IF
LEN
(
x
) =
0
THEN
EXIT
LOOP
ENDIF
x
=
UCASE
(
x
)
SPLIT x,
"
<>
"
,
y
USE
TRIM
(
x
)
b
=
INSTR
(
x
,
"
<
"
)
s
=
INSTR
(
x
,
"
>
"
)
radish
=
y
(
0
)
IF
EMPTY
(
radish
)
THEN
IF
s
=
0
THEN
base
=
VAL
(
y
(
1
))
show
=
"
?
"
ELSEIF
b
=
0
THEN
base
=
"
?
"
show
=
VAL
(
y
(
1
))
ELSEIF
b
<
s
THEN
base
=
VAL
(
y
(
1
))
show
=
VAL
(
y
(
2
))
ELSE
base
=
VAL
(
y
(
2
))
show
=
VAL
(
y
(
1
))
ENDIF
IF
base
<>
"
?
"
THEN
IF
ABS
(
base
) <
2
OR
ABS
(
base
) >
36
THEN
PRINT
"
Erroneous input base
"
ELSE
base0
=
base
PRINT
"
New input base =
"
; base0
ENDIF
ENDIF
IF
show
<>
"
?
"
THEN
IF
ABS
(
show
) <
2
OR
ABS
(
show
) >
36
THEN
PRINT
"
Erroneous display base
"
ELSE
show0
=
show
PRINT
"
New display base =
"
; show0
ENDIF
ENDIF
ELSEIF
radish
=
"
?
"
THEN
PRINT
"
Input base =
"
; base0
PRINT
"
Display base =
"
; show0
ELSE
IF
b
=
0
AND
s
=
0
THEN
base
=
base0
show
=
show0
ELSEIF
s
=
0
THEN
base
=
VAL
(
y
(
1
))
show
=
show0
ELSEIF
b
=
0
THEN
base
=
base0
show
=
VAL
(
y
(
1
))
ELSEIF
b
<
s
THEN
base
=
VAL
(
y
(
1
))
show
=
VAL
(
y
(
2
))
ELSE
base
=
VAL
(
y
(
2
))
show
=
VAL
(
y
(
1
))
ENDIF
IF
ABS
(
base
) <
2
OR
ABS
(
base
) >
36
OR
ABS
(
show
) <
2
OR
ABS
(
show
) >
36
THEN
PRINT
"
Erroneous base
"
ELSE
sign
=
1
IF
base
=
10
THEN
tuber
=
VAL
(
radish
)
ELSE
radix
=
base
tuber
=
0
IF
ASC
(
radish
) =
ASC
(
"
-
"
)
AND
radix
>
0
THEN
sign
=
-1
radish
=
REPLACE
(
radish
,
1
,
"
"
,
1
)
ENDIF
WHILE
LEN
(
radish
) >
0
digit
=
ASC
(
radish
)
IF
digit
>=
ASC
(
"
0
"
)
AND
digit
<=
ASC
(
"
9
"
)
THEN
digit
=
digit
-
ASC
(
"
0
"
)
ELSEIF
digit
>=
ASC
(
"
A
"
)
AND
digit
<=
ASC
(
"
Z
"
)
THEN
digit
=
digit
-
ASC
(
"
A
"
) +
10
ELSE
digit
=
ABS
(
radix
)
ENDIF
IF
digit
<
ABS
(
radix
)
THEN
tuber
=
tuber
*
radix
+
digit
radish
=
REPLACE
(
radish
,
1
,
"
"
,
1
)
ELSE
tuber
=
"
?
"
radish
=
"
"
ENDIF
WEND
ENDIF
IF
tuber
<>
"
?
"
THEN
tuber
=
tuber
* sign
radix
=
show
radish
=
"
"
REPEAT
carry
=
CEIL
(
tuber
/
radix
) * (
tuber
<
0
)
tuber
=
tuber
-
carry
* radix
remainder = tuber % radix
tuber
=
tuber
\\
radix
+
carry
digit
=
ABS
(
remainder)
IF
digit
>
9
THEN
digit
=
digit
-
10
+
ASC
(
"
A
"
)
ELSE
digit
=
digit
+
ASC
(
"
0
"
)
ENDIF
radish
=
CHR
(
digit
) +
radish
UNTIL
tuber
=
0
IF
remainder < 0 THEN
radish
=
"
-
"
+
radish
ENDIF
IF
base
<>
10
THEN
base$ =
CHR
(
27
) +
"
[91m
"
+
base
+
CHR
(
27
) +
"
[80m
"
ELSE
base$ =
"
"
ENDIF
IF
show
<>
10
THEN
show$ =
CHR
(
27
) +
"
[91m
"
+
show
+
CHR
(
27
) +
"
[80m
"
ELSE
show$ =
"
"
ENDIF
PRINT
y
(
0
); base$;
"
=
"
; radish; show$
ELSE
PRINT
"
Erroneous digit
"
ENDIF
ENDIF
ENDIF
UNTIL
0
END
'
Back
|
FazBrowse Home
|
New Git URL