三流君のソースコード置き場

ブログにソースコードをアップして、ブログの検索機能で利用してます(利用予定です)

よく検索されるキーワード: [VBA]/ [VBS]/ [CreateObject]/ [Excel]/ [ADO]


asp094.html 三流君ASP:2進数文字列と16進文字列の変換処理に挑戦

元の三流解説は、
三流君ASP:2進数文字列と16進文字列の変換処理に挑戦
↑を見て、笑ってやってください。
ブログに過去のソースコードをアップして、ブログの検索機能で利用してます(利用予定です)
※古くさいコードが多いです・・・



HEX16進文字列を受け取り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
%>

↑をテスト実行する→http://www.ken3.org/cgi-bin/test/test094-1.asp?DATA=F2実行する



2進数文字列を受け取りHEX16進文字列を返す(頭0を+する) ソースコード

<%@LANGUAGE=VBScript%>
<html>
<head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis">
<title>2進数文字列を受け取りHEX16進文字列を返す(頭0を+する)</title>
</head>
<body>
<h1>2進数文字列を受け取りHEX16進文字列を返す(頭0を+する)</h1>
自作した2進数文字列から16進数文字列への変換ルーチンを呼んでます。<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)
    '関数を呼んで、16進数に変換して表示する
    Response.Write "<br>16進数に変換すると<br>"
    Response.Write STR2toHEX16(CHK_DATA) & "<br>です<HR>"
  Else
    CHK_DATA = "11110101"
  End If
%>
テストデータの入力<br>
<FORM ACTION="test094-2.asp" METHOD="POST">
調査したい2進数の文字列を入力してください。<br>
<INPUT TYPE="text" SIZE="20" NAME="DATA" VALUE="<%=CHK_DATA%>">
<br><INPUT TYPE="submit" VALUE="変換開始"><br>
↑いろいろと遊んでみてください↑
</FORM>
<br>
</body>
</html>
<%
'2進文字列を受け取り16進文字列を返す
Function STR2toHEX16(str2)

    Dim strHEX
    Dim n       'ループカウンタ
    Dim i       'ループのカウンタ
    Dim n8421   '8 4 2 1の数値計算用
    Dim nBYTE

    '頭4文字単位かチェックする
    n = Len(str2) Mod 4      '足りない文字数を計算する
    If n <> 0 Then 
       str2 = String(4 - n, "0") & str2 '頭に文字0を追加する
    End If

    strHEX = ""   '結果のエリアを初期化する

    '文字数分ループする
    For n = 1 To Len(str2) Step 4  '4文字(1バイト)単位にループを作る
        n8421 = 8  '初期値に8を代入する(上から計算したいので)
        nBYTE = 0  '1バイト計算用変数を初期化
        For i = 0 To 3  '4回まわるよ(4ビット分)
            'ビットが立っているかチェックする
            If Mid(str2, n + i, 1) = "1" Then
                nBYTE = nBYTE + n8421   'ビットに対応した数値を+する
            End If
            '次のビットを計算したいので2で割る
            n8421 = n8421 / 2
        Next 
        '計算して、1倍との数値が完成したので16進文字にしてセットする
        strHEX = strHEX & Hex(nBYTE)
     Next 

     'リターン値をセットして関数を抜ける
     STR2toHEX16 = strHEX

End Function

%>

↑をテスト実行する→http://www.ken3.org/cgi-bin/test/test094-2.asp?DATA=111実行する



2進数文字列を受け取りHEX16進文字列を返す(後ろから計算する) ソースコード

<%@LANGUAGE=VBScript%>
<html>
<head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis">
<title>2進数文字列を受け取りHEX16進文字列を返す(後ろから計算する)</title>
</head>
<body>
<h1>2進数文字列を受け取りHEX16進文字列を返す(後ろから計算する)</h1>
自作した2進数文字列から16進数文字列への変換ルーチンを呼んでます。<br>
文字列の後ろから4ビット単位で1つの16進数文字列を作成してます<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)
    '関数を呼んで、16進数に変換して表示する
    Response.Write "<br>16進数に変換すると<br>"
    Response.Write STR2toHEX16_B(CHK_DATA) & "<br>です<HR>"
  Else
    CHK_DATA = "11110101" 'テスト用の初期値を勝手に代入無くてもいいけど
  End If
%>
テストデータの入力<br>
<FORM ACTION="test094-3.asp" METHOD="POST">
調査したい2進数の文字列を入力してください。<br>
<INPUT TYPE="text" SIZE="20" NAME="DATA" VALUE="<%=CHK_DATA%>">
<br><INPUT TYPE="submit" VALUE="変換開始"><br>
↑いろいろと遊んでみてください↑
</FORM>
<br>
</body>
</html>
<%
'2進文字列を受け取り16進文字列を返す(後ろからチェック)
Function STR2toHEX16_B(str2)

    Dim strHEX
    Dim n       'ループカウンタ
    Dim i       'ループのカウンタ
    Dim n8421   '8 4 2 1の数値計算用
    Dim nBYTE

    strHEX = ""   '結果のエリアを初期化する
    n8421 = 1  '初期値に1を代入する(下から計算したいので)
    nBYTE = 0  '計算用変数を初期化

    '文字数分ループする
    For n = Len(str2) To 1 Step -1  '後ろからループを作る
        'ビットが立っているかチェックする
        If Mid(str2, n + i, 1) = "1" Then
            nBYTE = nBYTE + n8421   'ビットに対応した数値を+する
        End If
        '次のビットを計算したいので*2で計算 1.2.4.8.16.32...としたい
        n8421 = n8421 * 2
    Next

    '計算して、数値が完成したので16進文字にしてセットする
    strHEX = Hex(nBYTE)

    'リターン値をセットして関数を抜ける
    STR2toHEX16_B = strHEX

End Function

%>

↑をテスト実行する→http://www.ken3.org/cgi-bin/test/test094-3.asp?DATA=111010実行する

↑コードの三流解説は、
三流君ASP:2進数文字列と16進文字列の変換処理に挑戦
を見て、笑ってやってください。



ASPの解説 トップページは
三流君ASPで遊ぶ、失敗する
です。こちらもよろしく・・・

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。
(※詳細は[三流君 三流プログラマーとは?]を見てください)


Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。
・[Excel/Access VBA]の解説
・[ASP(Active Server Pages)]の解説。
・[元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
・[プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
三流君を踏み台にする
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。

三流解説動画の再生リスト
https://www.youtube.com/user/ken3video/playlists

本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)