

あるパスワードをテキストファイルに書き込む処理です。
そのままだと、パスワードの意味が無いので、上位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ランキング
-
カンマの含まれる文字列の数値...
-
VBAのコマンドボタンの文字列の...
-
テキストボックスの回転
-
エスケープ文字の復帰(¥r)と...
-
\\nと\\rの違い
-
改行について
-
JavaDoc コメントの改行について
-
文字コードの検出が正しいかを...
-
IT企業の技術屋にとって全角英...
-
テキストボックス行の桁数を制...
-
1行ごとに取得して、その改行...
-
エクセルのCOUNTIFが正しくカウ...
-
Excel VBAからBeckyを起動して...
-
テキストファイルから改行コー...
-
文字列のアスタリスク置換
-
ダブルコーテーション(
-
JavaMail,本文中の改行について
-
DataGridView編集中のイベント取得
-
VBAでCSVをExcelに取り込む時に...
-
電話番号のチェック ハイフン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマの含まれる文字列の数値...
-
VB6.0 Base64のデコード方法を...
-
ホームページ作成の初心者です
-
VB6 機種依存文字の変換
-
fgetws関数で読み込んだUNICODE...
-
携帯サイトで販売されている絵...
-
大小文字混合させて削除したい
-
i-mode、ez-web、ボーダフォン...
-
数値をASCII文字にする方法につ...
-
1バイト文字の上位4ビット・...
-
エディットコントロールへのUni...
-
VBA ASC関数で変換できない文...
-
マクロで半角を全角に
-
文字列と文字
-
ヌル文字とは一体何でしょうか
-
携帯電話の絵文字対応の掲示板...
-
16進数の文字列をアスキーコー...
-
機種依存文字
-
PHPでMysqlに絵文字を入力する...
-
format関数についてです。
おすすめ情報