

あるパスワードをテキストファイルに書き込む処理です。
そのままだと、パスワードの意味が無いので、上位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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Excel(エクセル) バイナリー演算を勉強したい 1 2023/04/19 14:17
- Visual Basic(VBA) Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを 2 2023/06/14 01:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Visual Basic(VBA) vbaの計算 if elseと範囲について 6 2022/11/26 01:49
- Visual Basic(VBA) エクセルVBAで以下のようなコードを書いたらエラーになりました。何処が間違っているの教えて? 1 2023/02/10 18:30
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
i-mode、ez-web、ボーダフォン...
-
大小文字混合させて削除したい
-
携帯サイトで販売されている絵...
-
VB6.0 Base64のデコード方法を...
-
数値をASCII文字にする方法につ...
-
マクロで半角を全角に
-
文字列と文字
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
awkで改行を除いて文字列を抜き...
-
メッセージボックスで1025文字...
-
jsp 改行コードで改行させて表...
-
文字の入力で横バー上段、中断...
-
エスケープ文字の復帰(¥r)と...
-
JAVA Spring 改行コードを含む...
-
グレープシティのSPREAD...
-
Excel関数「COUNTIF」で”文字”...
-
改行について
-
awkの BEGIN{RS=""} で空行を削...
-
2つ以上の連続する空白文字を除去
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマの含まれる文字列の数値...
-
数値をASCII文字にする方法につ...
-
16進数の文字列をアスキーコー...
-
VB6 機種依存文字の変換
-
ケータイの絵文字
-
マクロで半角を全角に
-
preg_replaceがうまくできない
-
1バイト文字の上位4ビット・...
-
fgetws関数で読み込んだUNICODE...
-
i-modeの絵文字をパソコンで再現
-
SQLインジェクション対策で、エ...
-
PHP 日付フォーマット
-
エディットコントロールへのUni...
-
VBA ASC関数で変換できない文...
-
テキストエディタで特定の文字...
-
【i-mode】【v-live】【ez-web...
-
ヌル文字とは一体何でしょうか
-
整数型の配列に a,b,c,: などの...
-
HTMLエンティティ文字の変換
-
外字を削除したい
おすすめ情報