home *** CD-ROM | disk | FTP | other *** search
/ Boston 2 / boston-2.iso / DOS / PROGRAM / BASIC / QBPACKET / BASES.BAS < prev    next >
BASIC Source File  |  1993-12-01  |  4KB  |  129 lines

  1. DEFLNG A-Z
  2.  
  3. DECLARE FUNCTION DecToHex$ (DecimalNum)
  4. DECLARE FUNCTION HexToDec (HexidecimalNum$)
  5. DECLARE FUNCTION DecToOct$ (DecimalNum)
  6. DECLARE FUNCTION OctToDec (OctalNum$)
  7. DECLARE FUNCTION DecToBin$ (DecimalNum, DecNum$)
  8. DECLARE FUNCTION BinToDec (BinaryNum$)
  9.  
  10. Showmenu:
  11. CLS
  12. REM *** PRINT THE MENU ***
  13. COLOR 12
  14. PRINT " *** The Base Converter *** "
  15. PRINT " ***   by Ian D. Moss   *** "
  16. PRINT " *** Started October 12 *** "
  17. PRINT " ***    Year of 1991    *** "
  18. PRINT "****************************"
  19. PRINT "*********** ";
  20. COLOR 2
  21. PRINT "MENU";
  22. COLOR 12
  23. PRINT " ***********"
  24. COLOR 6
  25. PRINT STRING$(28, 220)
  26. PRINT "█1**Decimal to Hexidecimal*█"
  27. PRINT "█2**Hexidecimal to Decimal*█"
  28. PRINT "█3**Decimal to Octal*******█"
  29. PRINT "█4**Octal to Decimal*******█"
  30. PRINT "█5**Decimal to Binary******█"
  31. PRINT "█6**Binary to Decimal******█"
  32. PRINT "█7**Exit*******************█"
  33. PRINT STRING$(28, 223)
  34. COLOR 14
  35. INPUT "Choose one. ", Cnvrt
  36. COLOR 3
  37. SELECT CASE Cnvrt
  38.    CASE IS = 1
  39.       INPUT "Enter decimal (Base 10) number. ", DecimalNum
  40.       Conversion$ = DecToHex$(DecimalNum)
  41.       PRINT DecimalNum; "in decimal is "; Conversion$; " in hexidecimal."
  42.    CASE IS = 2
  43.       INPUT "Enter hexidecimal (Base 16) number. ", HexidecimalNum$
  44.       Conversion = HexToDec(HexidecimalNum$)
  45.       PRINT " "; HexidecimalNum$; " in hexidecimal is"; Conversion; "in decimal."
  46.    CASE IS = 3
  47.       INPUT "Enter decimal (Base 10) number. ", DecimalNum
  48.       Conversion$ = DecToOct$(DecimalNum)
  49.       PRINT DecimalNum; "in decimal is "; Conversion$; " in octal."
  50.    CASE IS = 4
  51.       INPUT "Enter octal (Base 8) number. ", OctalNum$
  52.       Conversion = OctToDec(OctalNum$)
  53.       PRINT " "; OctalNum$; " in octal is"; Conversion; "in decimal."
  54.    CASE IS = 5
  55.       INPUT "Enter decimal (Base 10) number. ", DecimalNum
  56.       DecNum$ = STR$(DecimalNum)
  57.       Conversion$ = DecToBin$(DecimalNum, DecNum$)
  58.       PRINT DecimalNum; "in decimal is "; Conversion$; " in binary."
  59.    CASE IS = 6
  60.       INPUT "Enter binary (Base 2) number. ", BinaryNum$
  61.       Conversion = BinToDec(BinaryNum$)
  62.       PRINT " "; BinaryNum$; " in binary is"; Conversion; "in decimal."
  63.    CASE IS = 7
  64.       INPUT "Are you sure you want to exit"; ExDummy$
  65.       SELECT CASE ExDummy$
  66.          CASE "Y", "y"
  67.             END
  68.          CASE "N", "n"
  69.             GOTO Showmenu
  70.          CASE ELSE
  71.             PRINT "Press Y or N."
  72.          END SELECT
  73.    CASE ELSE
  74.       PRINT " * * *  E R R O R  * * * "
  75.       PRINT "   Please type in one of"
  76.       PRINT "the numbers between 1 and"
  77.       PRINT "6.  Thank you."
  78. END SELECT
  79.  
  80. PRINT "Press any key to continue."
  81. WHILE INKEY$ = "": WEND
  82. CLS
  83. GOTO Showmenu
  84.  
  85. FUNCTION BinToDec (BinaryNum$)
  86.    BinToDec = 0
  87.    FOR I = 0 TO LEN(BinaryNum$) - 1
  88.       IF MID$(BinaryNum$, LEN(BinaryNum$) - I, 1) = "1" THEN
  89.          D = D + 2 ^ I
  90.       END IF
  91.    NEXT I
  92.    BinToDec = D
  93. END FUNCTION
  94.  
  95. FUNCTION DecToBin$ (DecimalNum, DecNum$)
  96.    DecBin = VAL(DecNum$)
  97.    BinNum$ = ""
  98.    Q = DecBin
  99.    AnotherVar$ = ""
  100.    WHILE Q <> 0
  101.       AnotherVar$ = "0"
  102.       R = Q MOD 2: Q = Q \ 2
  103.       IF R = 1 THEN
  104.          AnotherVar$ = "1"
  105.       END IF
  106.       BinNum$ = AnotherVar$ + BinNum$
  107.    WEND
  108.    DecToBin$ = BinNum$
  109. END FUNCTION
  110.  
  111. FUNCTION DecToHex$ (DecimalNum)
  112.    DecToHex$ = HEX$(DecimalNum)
  113. END FUNCTION
  114.  
  115. FUNCTION DecToOct$ (DecimalNum)
  116.    DecToOct$ = OCT$(DecimalNum)
  117. END FUNCTION
  118.  
  119. FUNCTION HexToDec (HexidecimalNum$)
  120.    HexidecimalNum$ = "&H" + HexidecimalNum$
  121.    HexToDec = VAL(HexidecimalNum$)
  122. END FUNCTION
  123.  
  124. FUNCTION OctToDec (OctalNum$)
  125.    OctalNum$ = "&O" + OctalNum$
  126.    OctToDec = VAL(OctalNum$)
  127. END FUNCTION
  128.  
  129.