掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
パック十進数に変換するには? (ID:90842)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>この[432]を[0100 0011 0010 1100]に変換した後、 >2バイトの領域に格納する為に更に変換が必要なのではないかと >思うのですが、その方法がわからず困っています。 ビットイメージをByte配列に格納するのはそんなに 難しいことではない。 '呼び出し方 Dim byt() As Byte byt = GetPack10Byte(432) Private Function GetPack10Byte(ByVal Value As Long) As Byte() s = Pack10(Value) s = Replace(s, " ", "") '空白行の削除 GetPack10Byte = BitToByte(s) End Function Private Function BitToByte(s) 'ビットイメージをByte配列に Dim byt() As Byte Dim i As Integer Dim s1 As String If Len(s) Mod 8 <> 0 Then s = "0000" & s 'Byteに揃える End If ReDim byt(Len(s) \ 8 - 1) 'Byte配列の確保 Do s1 = Left(s, 8) byt(i) = BitToLong(s1) s = Right(s, Len(s) - 8) i = i + 1 Loop While (Len(s) <> 0) BitToByte = byt End Function Private Function BitToLong(ByVal s As String) As Long 'ビット表示をLongに変換 Dim i As Integer Dim t As Long For i = 1 To Len(s) If Mid(s, i, 1) = "1" Then t = t + 2 ^ (Len(s) - i) End If Next BitToLong = t End Function これで多分魔界の仮面弁士さんの処理結果と同じになるはずだが。。。。 まあこんな回りくどい方法にすることは無いのだが、行きがかり上やむおえず。orz
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.