2進数 を 使った ソースコードを紹介する表示色の説明:ASP VBScriptは <% 〜 %> キーワードは2進数 です。
<%@LANGUAGE=VBScript%>
<html>
<head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis">
<title>HEX16進文字列を受け取り2進数文字列を返す(例外エラー処理なし)</title>
</head>
<body>
<h1>HEX16進文字列を受け取り2進数文字列を返す(例外エラー処理なし)</h1>
自作した16進数文字列から2進数文字列への変換ルーチンを呼んでます。<br>
※詳細は、ソースと詳細解説のページを見てください。<br>
<hr>
<%
'Request.ServerVariables("REQUEST_METHOD")でPOST/GETを判断
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then 'POST判断
CHK_DATA = Request.Form("DATA") 'データを変数に保存
Else 'GET
'Request.QueryStringの値を取出す
CHK_DATA = Request.QueryString("DATA") 'データを変数を保存
End If
'長さをチェックする
If Len(CHK_DATA) <> 0 Then '文字が入っていたら
Response.Write "受け取ったデータは<br>"
Response.Write Server.HTMLEncode(CHK_DATA)
'関数を呼んで、2進数に変換して表示する
Response.Write "<br>2進数に変換すると<br>"
Response.Write HEX16toSTR2(CHK_DATA) & "<br>です<HR>"
Else
CHK_DATA = "FFFF"
End If
%>
テストデータの入力<br>
<FORM ACTION="test094-1.asp" METHOD="POST">
調査したい16進数の文字列を入力してください。<br>
<INPUT TYPE="text" SIZE="8" NAME="DATA" VALUE="<%=CHK_DATA%>">
<INPUT TYPE="submit" VALUE="変換開始"><br>
↑いろいろと遊んでみてください↑
</FORM>
※16進数に無い、5GとかH1など入力するとエラーになります。<br>
エラーチェックぐらいしろよって感じですが・・・<br>
<br>
</body>
</html>
<%
'HEX16進文字列を受け取り2進数文字列を返す
Function HEX16toSTR2(strHEX)
Dim n 'ループカウンタ
Dim i 'ループのカウンタ
Dim n8421 '8 4 2 1の数値計算用
Dim str2STR
Dim nCHK
str2STR = "" '結果のエリアを初期化する
'文字数分ループする
For n = 1 To Len(strHEX)
nCHK = CInt("&h" & Mid(strHEX, n, 1)) 'n文字目を数値変換
n8421 = 8 '初期値に8を代入する(上からチェックしたいので)
For i = 1 To 4 '4回まわるよ
If (nCHK And n8421) = 0 Then 'Andでビットをチェックする
str2STR = str2STR & "0" 'ビットは立ってないよ
Else
str2STR = str2STR & "1" 'ビットは立ってるよ
End If
'次のビットをチェックしたいので2で割る
n8421 = n8421 / 2
Next
Next
'リターン値をセットして終了
HEX16toSTR2 = str2STR
End Function
%>
|
|