掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
10進数を16、2進数に変換するには? (ID:104398)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ANDを使ったサンプルです。 Long型から二進文字列へ変換します。 最上位ビット対策はしてませんのであしからず。 Private Sub Command1_Click() Me.Caption = KMGetBits(&H40000000) End Sub Private Function KMGetBits(ByVal HLBit As Long) As String Dim HLi As Long Dim HLAndBits As Long HLAndBits = 1 HLi = 0 Do If (HLBit And HLAndBits) Then KMGetBits = "1" & KMGetBits Else KMGetBits = "0" & KMGetBits End If HLi = HLi + 1 If (HLi >= LenB(HLi) * 8 - 1) Then Exit Do HLAndBits = HLAndBits * 2& Loop End Function =簡単な解説= 1、Long型は32Bit(最上位は符号に使用されるのでサンプルでは31Bit) (LenBでバイト数を求め、1Byte = 8Bitなので*8している) 2,AND演算子は2つの値で共にビット立っているもののみを返します。 サンプルではHLAndBitsで指定したビットが立っていれば 同じ箇所のビットが立つので真となるわけです。 3,HLAndBitsは1から31Bitまでの各ビットが単体で立った数値になります。 通常はシフト演算を使いますがVBでは存在しないため、2をかけてます。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.