

あるパスワードをテキストファイルに書き込む処理です。
そのままだと、パスワードの意味が無いので、上位4ビットと下位4ビットを入れ替えて保存しようと思います。
上位・下位それぞれ4ビットシフトするところまでは出来ました。
Dim a As Integer
Dim a1 As Integer
Dim a2 As Integer
a = Asc("a")
a1 = a \ 2 ^ 4
a2 = a * 2 ^ 4
MsgBox (Hex(a1))
MsgBox (Hex(a2))
が、それを8ビットに戻す方法が分かりません。
また、パスワードは1バイト文字による文字列ですが、文字列長分を1バイトずつバッファに読み込んで、変換し、同サイズのバッファに詰め込んでいく処理も分かりません。
以前、MS-C(MSDOS上のC言語)を少しやったので、それでなら分かるのですが、VBは全くの初心者で、調べても調べても見当がつきません。
どうか教えて下さい。
宜しくお願い致します。
No.4ベストアンサー
- 回答日時:
●1バイト文字の上位4ビット・下位4ビットの入れ替え
参考。理解・確認のため余分なものを入れている。
骨子は*****のところ。
Sub test01()
h = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", _
"9", "A", "B", "C", "D", "E", "F")
a = Asc("z")
MsgBox "コード" & a
x = a Mod 16 '*****
y = Int(a / 16) '*****
MsgBox "16進表示" & h(x) & " " & h(y)
'もとの数のビット列
s = ""
x = a
For i = 1 To 8
y = x Mod 2
s = y & s
x = Int(x / 2)
Next i
MsgBox "もとの数のビット列" & s
'----
'上位・下位4ビット反転
x = a Mod 16
y = Int(a / 16)
z = x * 16 + y '*****
MsgBox "上位・下位4ビット反転のコード" & z
x = z Mod 16
y = Int(z / 16)
MsgBox "16進表示" & h(x) & " " & h(y)
'------上位・下位4ビット反転のビット列
s = ""
x = z
For i = 1 To 8
y = x Mod 2
s = y & s
x = Int(x / 2)
Next i
MsgBox "上位・下位4ビット反転" & s
End Sub
●文字列長分を1バイトずつバッファに読み込んで、変換し、同サイズのバッファに詰め込んでいく処理も分かりません
上記でもやってますが、
S=""
For i=1 to 文字列長
Xには1バイト分上位・下位4ビット反転した結果を入れる
S=S & X
Next i
を使えば良いです。
下位桁から処理なら
S= X & S
にする。
No.3
- 回答日時:
Private Sub Form_Click()
Dim a As Byte
Dim b As Byte
Dim i As Integer
For i = 0 To &HFF
a = i
b = (a And &HF) * &H10 Or (a And &HF0) \ &H10
Debug.Print Hex(a), Hex(b)
Next
End Sub
No.2
- 回答日時:
>文字列長分を1バイトずつバッファに読み込んで、変換し、同サイズのバッファに詰め込んでいく処理
for i=1 to len(strbuff)
Mid(strbuff, i, 1) = 変換(Mid(strbuff, i, 1))
Next
next
No.1
- 回答日時:
> それを8ビットに戻す方法が分かりません。
文字→8ビットは、
a = Asc("a")
で出来ていますね。
Asc関数をヘルプで調べると、関連項目にChrという関数がありますので、こちらを利用します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カンマの含まれる文字列の数値...
-
VB6.0 Base64のデコード方法を...
-
VBAのコマンドボタンの文字列の...
-
メッセージボックスで1025文字...
-
Accessの文字数を調べたい
-
文字列の括弧について(初心者)
-
文字化け変換方法
-
Nvuで作成したhtmlをコピペして...
-
phpの正規表現でstyle="●●"を削...
-
ToolTipTextの改行はできないの...
-
ダイアログにおける改行
-
VBAでCSVをExcelに取り込む時に...
-
エクセルのCOUNTIFが正しくカウ...
-
ソースコードの1行が長いとき...
-
preg_matchの正規表現で
-
mb_ereg_replaceに関して
-
PHPで<a>タグ内からURLと文字を...
-
VBSで"をエスケープする文字は?
-
ラベル(スタティックテキスト)...
-
【VBA】エクセルで最後の不要な...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマの含まれる文字列の数値...
-
VBA ASC関数で変換できない文...
-
1バイト文字の上位4ビット・...
-
数値をASCII文字にする方法につ...
-
fgetws関数で読み込んだUNICODE...
-
マクロで半角を全角に
-
VB6.0 Base64のデコード方法を...
-
ヌル文字とは一体何でしょうか
-
16進数の文字列をアスキーコー...
-
SQLインジェクション対策で、エ...
-
iPhoneの絵文字をWebサイトに表...
-
エディットコントロールへのUni...
-
文字エンコードについて
-
c言語 文字 - '1'+26
-
preg_replaceがうまくできない
-
整数型の配列に a,b,c,: などの...
-
Excel VBAの数値変換
-
VB6 機種依存文字の変換
-
携帯電話の絵文字対応の掲示板...
-
HTMLエンティティ文字の変換
おすすめ情報