【VB.Net】制御文字を除いてAsciiコードを16進数に変換してみた

どうも!リョクちゃです。

今回は、Asciiコードと呼ばれる文字コードの制御文字を除いて

16進数に変換してみたので紹介します。

ちなみに前回の記事はこちら

VB.Netで音源だいるの一種であるwavの再生を簡単にWindowsフォームアプリケーションを例に紹介しています。Windowsフォームアプリケーションで、システム音ではなく、wavファイルを使って音源を使ってみたい、そんな時に使えるかと思います。少しでも参考になれば嬉しいです。



目次

Asciiコードとは

ASCII(アスキー、American Standard Code for Information Interchange)は、現代英語西ヨーロッパ言語で使われるラテン文字を中心とした文字コード。これはコンピュータその他の通信機器において最もよく使われているものである。

出典: フリー百科事典『ウィキペディア(Wikipedia)』

https://ja.wikipedia.org/wiki/ASCII

アルファベット、数字や記号などを収録しています。

最も基本的な文字コードとして世界的に普及しています。

他の多くの文字コードがASCIIの拡張になるよう実装されています。

文字を7ビットの値で表し、半角英数字と記号が含まれます。

※日本語は存在しません。

上位ビットが3桁、下位ビットが4桁でそれぞれ構成されています。

上位ビットが3桁なのは、先頭の1桁が通信の際にデータの転送が正しく行われたかどうかを

チェックするためのパリティ・ビットとして使用される場合があるからです。

ちなみにAsciiコードは、1文字を1バイトとして扱います。

1バイト = 8ビット

Asciiコード表

下に16進数とAsciiの対応表を示します。

上位ビット/下位ビット01234567
0NULDLESPACE0@P`p
1SCHDC1!1AQaq
2STXDC2"2BRbr
3ETXDC3#3CScs
4EOTDC4$4DTdt
5ENQNAK%5EUeu
6ACKSYN&6FVfv
7BELETB'7GWgw
8BSCAN(8HXhx
9HTEM)9IYiy
ALFSUB*:JZjz
BVTESC+;K[k{
CFFFS,<L\l|
DCRGS-=M]m}
ESORS.>N^n~
FSIUS/?O_oDEL

上位ビット1列目と2列目の0と1は制御文字になります。

Asciiの上位ビットと下位ビットの組み合わせをビット・パターンといい、

例えば、半角文字”A”をAsciiコードを16進数で表すと、”41″になります

ちなみに2進数だと、

0100 0001

になります。

この表を使って、正しく変換されているかどうかを確認していきます。

準備編

VisualStudio2019を使って、Windowsフォームアプリケーションを作成していきます。

最初の手順については、下記記事をご参照ください。

VisualStudioを使ってWindowsアプリケーションを開発していく流れを紹介します。 以前に、簡単にざっくりと教える機会があった...

スポンサーリンク




フォームの作成

以下のようなフォームを作成します。

①~⑤のコントロールについては以下の表のとおりです。

Noコントロール名前
1LabelLabel1
2TextBoxtbxTarget
3LabelLabel2
4TextBoxtbxResult
5ButtonbtnConvert

各コントロールのフォントは、メイリオの18ptを設定しています。

実行環境

筆者の実行環境は、

  • VisualStudio2019
  • Windows 10 64bit
  • .Net Framework 4.5.1

になります。

※ Windows7 8 8.1でも動作はできますが、画面デザインの表示が変わるかもしれません。

アプリケーションの目的

16進数に変換したいAsciiコードを入力し、変換ボタンを押すことで

変換された結果が変換結果ボックスへ正しく表示されることを目的とします。

動作

動作としては、

  • tbxTargetへ16進数に変換したいAsciiコードを入力します。
  • btnConvertを押すことで、btnTargetへ入力された情報を16進数へ変換する。
  • 変換した結果をtbxResultへ表示する。

これらができることとします。

プログラム編

Asciiコードを16進数に変換するには、まず入力された文字(日本語を含まない)を

Asciiに変換する必要があります。

その後、16進数に変換をしていきます。

Asciiコードへの変換

入力された文字をAsciiに変換するには、Asc()関数を使います。

Asc(変換したい文字)

引数に指定した変換したい文字のAscii(文字コード)を整数型で返してくれます。

複数の文字が引数に渡された場合、最初の1文字目のAscii(文字コード)を返します。

例えば、ABCDEを入力値として渡したとき、返り値としては”65″になります。

16進数への変換

変換されたAsciiを16進数に変換するには、Hex()関数を使用します。

Hex(変換する値)

例えば、65を16進数に変換した場合、返り値としては、”41″になります。

Asciiコードから16進数への変換

AscとHexを用いて、Asciiコードから16進数へ変換したいときは、

Hex(Asc(変換する値))

と書くことで行えます。

では、これらを使い、ボタンが押されたら変換するコードを書いていきます。

実行編

実際に実行をしていきます。

プログラム起動時

変換したいAsciiに”A”を入力

変換ボタンを押し、結果が入力された

まとめ

Asciiコードを16進数に変換する方法を紹介しました。

Asciiコードは幅広く使われている文字コードでベースにもなるので、

覚えておいて損はありません。

何らかの参考になれば嬉しいです。

最後までお読みいただきありがとうございます。

・こちらの書籍を参考にVB.Net勉強しています。

スポンサーリンク