20 lines
637 B
Text
20 lines
637 B
Text
DECLARE FUNCTION SumDigits% (Num AS INTEGER, NBase AS INTEGER)
|
|
|
|
CLS
|
|
PRINT "1 base 10 ->"; SumDigits%(1, 10)
|
|
PRINT "1234 base 10 ->"; SumDigits%(1234, 10)
|
|
PRINT "FE base 16 ->"; SumDigits%(&HFE, 16); " (Hex -> "; HEX$(SumDigits%(&HFE, 16)); ")"
|
|
PRINT "F0E base 16 ->"; SumDigits%(&HF0E, 16); " (Hex -> "; HEX$(SumDigits%(&HF0E, 16)); ")"
|
|
|
|
FUNCTION SumDigits% (Num AS INTEGER, NBase AS INTEGER)
|
|
' Var
|
|
DIM iSum AS INTEGER
|
|
|
|
Num = ABS(Num) ' Should be a positive number
|
|
IF NBase < 2 THEN NBase = 10 ' Default decimal
|
|
DO WHILE Num > 0
|
|
iSum = iSum + (Num MOD NBase)
|
|
Num = Num \ NBase
|
|
LOOP
|
|
SumDigits% = iSum
|
|
END FUNCTION
|