Bin Dec Hex, 11-28-18
I was given an old Tandy Color Computer. While playing around with it I decided I needed something to convert from binary to decimal to hex. I found these bin-dec-hex converters online.....
https://www.binaryhexconverter.com/
They work great but I wanted something that was a little easier and would roll between binary, decimal and hex. So, I wrote this program for my TI-74. It will only do decimal to 1048575, hex to FFFFF and binary a little larger. I confirmed the output with the online converters above and it seems to give similar results. Like I say, I'm no programmer or math expert so if you type it in make sure it's working okay.
9000 PRINT "Bin Dec Hex"
AUSE .8
9002 T8$=Z8$
RINT Z8$;" bin ";:ACCEPT NULL(Z8$),Z8$
9005 J8=0:A8=0:I8=LEN(Z8$):IF Z8$=""THEN 9000
9010 C8=VAL(SEG$(Z8$,I8,1)):A8=A8+INT(C8*2^J8 ):J8=J8+1:I8=I8-1
9015 IF C8>1 OR C8<0 THEN PRINT "..not binary"
AUSE:Z8$=T8$:GOTO 9000
9020 IF I8=0 THEN PRINT "Dec=";A8
AUSE:GOTO 9500
9030 GOTO 9010
9500 PRINT A8;"dec ";:ACCEPT NULL(A8 ),A8
9502 IF A8<0 THEN PRINT "..pos # only"
AUSE:GOTO 9500
9505 A9=A8:IF A8>1048575 THEN PRINT "..dec 1048575 max"
AUSE:GOTO 9500
9510 B9=A8/16^4:K9=INT(B9):A8=B9-INT(B9):B9=(A8*16^4)/16^3:C9=INT(B9)
9520 A8=B9-INT(B9):B9=(A8*16^3)/16^2:W9=INT(B9):A8=B9-INT(B9):B9=(A8*16^2)/16
9530 I9=INT(B9):A8=B9-INT(B9):J9=INT(A8*16.001)
9540 A9$="":CC=K9:GOSUB 9600:CC=C9:GOSUB 9600:CC=W9:GOSUB 9600
9550 CC=I9:GOSUB 9600:CC=J9:GOSUB 9600
9560 PRINT "Hex= ";A9$
AUSE:GOSUB 9800
9570 IF F9$=""THEN PRINT "..not hex"
AUSE:GOTO 9560
9580 GOTO 9000
9600 IF CC=10 THEN A9$=A9$&"A"
9610 IF CC=11 THEN A9$=A9$&"B"
9620 IF CC=12 THEN A9$=A9$&"C"
9630 IF CC=13 THEN A9$=A9$&"D"
9640 IF CC=14 THEN A9$=A9$&"E"
9650 IF CC=15 THEN A9$=A9$&"F"
9660 IF CC<10 THEN A9$=A9$&STR$(CC)
9670 RETURN
9800 H9$=A9$:F9$="":CT=0
9805 PRINT H9$;" hex ";:ACCEPT VALIDATE(UALPHANUM)NULL(H9$),H9$
9810 CT=CT+1:G9$=SEG$(H9$,CT,1)
9820 IF CT<6 THEN GOSUB 9900 ELSE Z8$=F9$:RETURN
9830 GOTO 9810
9900 IF G9$="F"THEN F9$=F9$&"1111"
9910 IF G9$="E"THEN F9$=F9$&"1110"
9915 IF G9$="D"THEN F9$=F9$&"1101"
9920 IF G9$="C"THEN F9$=F9$&"1100"
9925 IF G9$="B"THEN F9$=F9$&"1011"
9930 IF G9$="A"THEN F9$=F9$&"1010"
9935 IF G9$="9"THEN F9$=F9$&"1001"
9940 IF G9$="8"THEN F9$=F9$&"1000"
9945 IF G9$="7"THEN F9$=F9$&"0111"
9950 IF G9$="6"THEN F9$=F9$&"0110"
9955 IF G9$="5"THEN F9$=F9$&"0101"
9960 IF G9$="4"THEN F9$=F9$&"0100"
9965 IF G9$="3"THEN F9$=F9$&"0011"
9970 IF G9$="2"THEN F9$=F9$&"0010"
9975 IF G9$="1"THEN F9$=F9$&"0001"
9980 IF G9$="0"THEN F9$=F9$&"0000"
9985 RETURN
Example:
bin 11111111111111111111 [enter]
Dec= 1048575 [enter]
1048575 dec 49152 [enter]
Hex= 0C000 [enter]
0C000 hex 0FAE2 [enter]
00001111101011100010 bin [enter]
Dec= 64226 [enter]
64226 dec [enter]
Hex= 0FAE2 [enter]
0FAE2 hex [enter]