QBASIC 十进制到二进制的转换
QBASIC Decimal to Binary conversion
我已经使用 QBASIC 中的 STR$() 将十进制数转换为二进制数。但是我需要一种不使用字符串函数将十进制数转换为二进制数的方法。谢谢
我的代码:
CLS
INPUT N
WHILE N <> 0
E = N MOD 2
B$ = STR$(E)
N = FIX(N / 2)
C$ = B$ + C$
WEND
PRINT "Output "; C$
END
当您想将整数值显示为二进制时,将其存储在字符串变量中对我来说似乎合乎逻辑,因为它仅用于显示。所以我不太确定你想在这里做什么。
也许你正在寻找 LTRIM$
所以你会得到像 11010
而不是 1 1 0 1 0
?
这样的输出
您可以将其存储在整数值中,如下面的代码所示。但是,尽管整数值看起来与字符串变量相同,但实际上它是一个完全不同的值。
CLS
INPUT "Type a decimal number:", N
S$ = ""
I = 0
P = 1
WHILE (N <> 0)
' get right most bit and shift right
E = N AND 1
N = INT(N / 2) ' bit shift right
' format for dsplay
S$ = LTRIM$(STR$(E)) + S$
I = I + (E * P)
P = P * 10
WEND
PRINT "Binary as string="; S$
PRINT "Binary as int="; I
END
此代码示例将数值转换为 Basic 中的二进制字符串。
PRINT "Enter value";
INPUT Temp#
Out3$ = ""
IF Temp# >= False THEN
Digits = False
DO
IF 2 ^ (Digits + 1) > Temp# THEN
EXIT DO
END IF
Digits = Digits + 1
LOOP
FOR Power = Digits TO 0 STEP -1
IF Temp# - 2 ^ Power >= False THEN
Temp# = Temp# - 2 ^ Power
Out3$ = Out3$ + "1"
ELSE
Out3$ = Out3$ + "0"
END IF
NEXT
END IF
PRINT Out3$
END
我已经使用 QBASIC 中的 STR$() 将十进制数转换为二进制数。但是我需要一种不使用字符串函数将十进制数转换为二进制数的方法。谢谢
我的代码:
CLS
INPUT N
WHILE N <> 0
E = N MOD 2
B$ = STR$(E)
N = FIX(N / 2)
C$ = B$ + C$
WEND
PRINT "Output "; C$
END
当您想将整数值显示为二进制时,将其存储在字符串变量中对我来说似乎合乎逻辑,因为它仅用于显示。所以我不太确定你想在这里做什么。
也许你正在寻找 LTRIM$
所以你会得到像 11010
而不是 1 1 0 1 0
?
您可以将其存储在整数值中,如下面的代码所示。但是,尽管整数值看起来与字符串变量相同,但实际上它是一个完全不同的值。
CLS
INPUT "Type a decimal number:", N
S$ = ""
I = 0
P = 1
WHILE (N <> 0)
' get right most bit and shift right
E = N AND 1
N = INT(N / 2) ' bit shift right
' format for dsplay
S$ = LTRIM$(STR$(E)) + S$
I = I + (E * P)
P = P * 10
WEND
PRINT "Binary as string="; S$
PRINT "Binary as int="; I
END
此代码示例将数值转换为 Basic 中的二进制字符串。
PRINT "Enter value";
INPUT Temp#
Out3$ = ""
IF Temp# >= False THEN
Digits = False
DO
IF 2 ^ (Digits + 1) > Temp# THEN
EXIT DO
END IF
Digits = Digits + 1
LOOP
FOR Power = Digits TO 0 STEP -1
IF Temp# - 2 ^ Power >= False THEN
Temp# = Temp# - 2 ^ Power
Out3$ = Out3$ + "1"
ELSE
Out3$ = Out3$ + "0"
END IF
NEXT
END IF
PRINT Out3$
END