请问VB高手 点击:737 | 回复:3



SHOW

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 6回
  • 年度积分:0
  • 历史总积分:74
  • 注册:2004年4月01日
发表于:2004-04-26 09:11:00
楼主
我在做数据采集时,要用到二进制数,比如说0110 请问这属于哪种类型呢,怎么声明以及我 怎么把十进制数转化为二进制数啊。 谢谢!!!



GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2004-04-26 10:34:00
1楼
2, 8, 10, 16 进制是指数字系统的表示法, 这跟 data type 是不一样的两回事! Dim abc as Integer abc = 48 abc = &H30 上述两行作的事是一样的, abc 的内容也是一样的, 差异只在于用 10/16 进制表示. 一般习惯上都是用 10 或 16 进制表示法.

maning

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 100回
  • 年度积分:0
  • 历史总积分:158
  • 注册:2003年9月05日
发表于:2004-04-26 10:35:00
2楼
Public Function Bin(ByVal n As Double, ByVal m As Long) As String Dim i As Long, dot As Long, iP As Long, fP As Double Dim prefix As String, BinInt As String, BinFloat As String If Left(n, 1) = "-" Then prefix = "-": n = Mid(n, 2) dot = InStr(n, ".") If dot <> 0 Then iP = Left(n, dot - 1): fP = Mid(n, dot) Else iP = n Do BinInt = (iP Mod 2) & BinInt iP = iP \ 2 Loop Until iP = 0 BinInt = prefix & BinInt If dot = 0 Then Bin = BinInt: Exit Function For i = 1 To m fP = fP * 2 fP = (fP - Int(fP)) + (Int(fP) Mod 2) BinFloat = BinFloat & Int(fP) If fP = 1 Then Exit For Next Bin = BinInt & "." & BinFloat End Function Public Function Dec(ByVal n As String) As Double Dim i As Long, j As Long, dot As Long, prefix As Long prefix = Sgn(n) If prefix = -1 Then n = Mid(n, 2) dot = InStr(n, ".") If dot = 0 Then dot = Len(n) - 1 Else n = Left(n, dot - 1) & Mid(n, dot + 1) dot = dot - 2 End If For i = dot To dot - Len(n) + 1 Step -1 j = j + 1 If Mid(n, j, 1) <> 0 Then Dec = Dec + 2 ^ i Next Dec = Dec * prefix End Function 仅供参考

海东青

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:67
  • 注册:2002年9月25日
发表于:2004-04-29 17:17:00
3楼
系统有函数,可直接转换

热门招聘
相关主题

官方公众号

智造工程师