十进制整数转二进制数:“除以2取余,逆序排列”(除二取余法)。[1]
以十进制数11转换为二进制数为例:
那么十进制数11转换为二进制数就是00001011。
VB6.0可通过编辑一个自定义函数过程来求得十进制数0-255的二进制字符串。
Funtion 过程,Visual Basic 包含内置的、或内部的函数,如 Sqr、Cos 、Chr或Hex函数。此外,还可用 Function 语句编写自己的 Function 过程。
在 Visual Basic 中调用 Function 过程的方法和调用任何内部函数的方法是一样的。
实施代码:
Option Explicit
Dim sBin
Dim sHex
Dim BinData
Const s1 = "0000101001101111000", s2 = "0125A4936DB7FEC8"
Dim i As Integer
Dim j As Integer
Public Function HexToBin(ByVal sHex As String) As String '转换自定义函数
Dim i As Integer, sBin As String
sHex = UCase(sHex)
For i = 1 To Len(sHex)
sBin = sBin & Mid(s1, InStr(1, s2, Mid(sHex, i, 1)), 4)
Next i
HexToBin = sBin
BinData = sBin
End Function
Private Sub Command1_Click()
j = Val(Text1)
If Len(Hex(j)) = 1 Then
sHex = "0" & Hex(j)
Else
sHex = Hex(j)
End If
Call HexToBin(sHex)
Text2 = BinData
End Sub
在Text1文本框输入0-255的整数,点Command1按钮,Text2文本框就输出该数的二进制字符串。
参考:
[1]http://baike.baidu.com/link?url=3O3LTqT7J4gpTM05DL6bjQoJbRKqx2WyGC7VkxYYfJyCwJcGBVzzUmUqfleAtliyaYhJA250V8XoWde8-EvJiK
楼上的聪明啊,:)
amu945 手快。
1=00000001
2=00000010
3=00000011
4=00000100
5=00000101
6=00000110
7=00000111
8=00001000
9=00001001
10=00001010
11=00001011
12=00001100
13=00001101
14=00001110
15=00001111
16=00010000
17=00010001
18=00010010
19=00010011
20=00010100
21=00010101
22=00010110
23=00010111
24=00011000
25=00011001
26=00011010
27=00011011
28=00011100
29=00011101
30=00011110
31=00011111
32=00100000
33=00100001
34=00100010
35=00100011
36=00100100
37=00100101
38=00100110
39=00100111
40=00101000
41=00101001
42=00101010
43=00101011
44=00101100
45=00101101
46=00101110
47=00101111
48=00110000
49=00110001
50=00110010
51=00110011
52=00110100
53=00110101
54=00110110
55=00110111
56=00111000
57=00111001
58=00111010
59=00111011
60=00111100
61=00111101
62=00111110
63=00111111
64=01000000
65=01000001
66=01000010
67=01000011
68=01000100
69=01000101
70=01000110
71=01000111
72=01001000
73=01001001
74=01001010
75=01001011
76=01001100
77=01001101
78=01001110
79=01001111
80=01010000
81=01010001
82=01010010
83=01010011
84=01010100
85=01010101
86=01010110
87=01010111
88=01011000
89=01011001
90=01011010
91=01011011
92=01011100
93=01011101
94=01011110
95=01011111
96=01100000
97=01100001
98=01100010
99=01100011
100=01100100
附上TSQL脚本。
declare @i int
declare @str varchar(8)
set @i=1
while @i<101
begin
declare @j int
set @str=''
set @j=1
while @j<=8
begin
if @i & (power(2,@j-1))=(power(2,@j-1))
set @str='1' + @str
else
set @str='0' + @str
set @j=@j+1
end
print cast(@i as varchar(3))+'='+@str
set @i=@i+1
end
1(1)
2(10)
3(11)
4(100)
5(101)
6(110)
7(111)
8(1000)
9(1001)
10(1010)
11(1011)
12(1100)
13(1101)
14(1110)
15(1111)
16(10000)
17(10001)
18(10010)
19(10011)
20(10100)
21(10101)
22(10110)
23(10111)
24(11000)
25(11001)
26(11010)
27(11011)
28(11100)
29(11101)
30(11110)
31(11111)
32(100000)
33(100001)
34(100010)
35(100011)
36(100100)
37(100101)
38(100110)
39(100111)
40(101000)
41(101001)
42(101010)
43(101011)
44(101100)
45(101101)
46(101110)
47(101111)
48(110000)
49(110001)
50(110010)
51(110011)
52(110100)
53(110101)
54(110110)
55(110111)
56(111000)
57(111001)
58(111010)
59(111011)
60(111100)
61(111101)
62(111110)
63(111111)
64(1000000)
65(1000001)
66(1000010)
67(1000011)
68(1000100)
69(1000101)
70(1000110)
71(1000111)
72(1001000)
73(1001001)
74(1001010)
75(1001011)
76(1001100)
77(1001101)
78(1001110)
79(1001111)
80(1010000)
81(1010001)
82(1010010)
83(1010011)
84(1010100)
85(1010101)
86(1010110)
87(1010111)
88(1011000)
89(1011001)
90(1011010)
91(1011011)
92(1011100)
93(1011101)
94(1011110)
95(1011111)
96(1100000)
97(1100001)
98(1100010)
99(1100011)
100(1100100)
4