C#初心者のためのアスキーコードの使用方法

このQ&Aのポイント
  • C#初心者がプログラム中でアスキーコードを使用する方法を知りたいです。
  • 0x**やCHRを使ってもうまくいかないので、他の方法はないか教えてください。
  • 自分の環境はNEC ValueOneで、CPUはAthlon 64x2 4200+、XP SP3、RAMは2GB、HDは1st 250GBと2nd 150GBです。
回答を見る
  • ベストアンサー

C#に取り組んでいる初心者です.

C#に取り組んでいる初心者です. プログラム中に、アスキー・コードを使用したいのですが、どのような命 令を使ったらよいのかわからずに困っています. 最初は、昔と同じように、0x** としましたが駄目でした. CHR も受け 付けてくれません. MSDNライブラリの中のどこかにあると考えて、いろ んな名前空間の中のメンバーを探してみましたが見つかりません.            探し方がまだ不十分だとお叱りを受けるかもしれませんが、どうも見つか りません.お手数かけて恐縮ですが、どなたかご教示をいただけないでし ょうか. お願いいたします. 当方の環境は、次のとおりです. NEC ValueOne CPU Athlon 64x2 4200+ XP SP3 RAM 2GB HD 1st 250 GB, 2nd 150 GB

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

C#では文字型は整数とは区別されていますので、文字コードをダイレクトで用いる場合は注意する必要があります。(実際には整数値が入ってるけど) ○  char a = 'A'; ×  char b = 0x41; ○  char c = (char)0x41; ちなみに、C#(といううか.NET)の内部コードはUNICODEなので昔のANCI文字(英数字は1バイト、漢字は2バイト)とかいう感覚で文字を使うのは危険です。charはC言語では8bitの整数型ですが、C#では16bitで定義され、英数字も漢字も基本的にはchar型1個で表されます。 上記、a,cには共に'A'が入っていますが、16bitコードなので正しくは0x0041が入ります。char型として使ってる限りは従来のC言語のcharと同じ感覚でも良いのですが、文字列をメモリに展開して1byte単位でアクセスして0x00を終端とか判断してしまうと誤動作の原因になります。

red_neck
質問者

お礼

早速のご教示、有難うございました. お蔭様で、ascii code が使えるようになりました.                                    ご教示のとおり、char は1Byte と勝手に思い込んでいました.C#では、 unicode、16bit を使用していると聞いてはいましたが、ピンと来ていま せんでした. ところで余計なことで恐縮ですが、「AB}と書かせるつもりで char aa = (char)0x0041, bb = (char)0x0042; Console.Writeline(aa + bb); とすると、表示は「131」と10進の合計となってしまいます. いろいろやっているうちに、   Console.WriteLine(aa + "" + bb); と、途中に "" をいれて 二つを分離すると、希望通りに「AB」となることがわかりました. 再度、お手数をかけて恐縮ですが、このあたりをご説明いただけないでしょうか. お願いいたします.

その他の回答 (2)

回答No.3

> Console.Writeline(aa + bb);  これは計算式が入ってるので、暗黙の型変換で整数型とみなされ、数値計算の結果が10進数で表示されます。 > Console.WriteLine(aa + "" + bb);  これは「""」があることで、()内が文字型変数を文字列に結合しているのだと解釈されているので、()内全体で"AB"という文字列とし、「AB」と表示されます。  もっとも、「AB」と表示したいと明確にするなら、  Console.WriteLine(aa.ToString() + bb.ToString()); という書き方もありますが。

red_neck
質問者

お礼

magicalpass 様 再度、詳細にご教示いただいて、本当に有難うございました. お礼を申し上げます. 実は画面の最下段に、私の癖で、"Press Sapce Bar for Next Step "と 表示して、Space Bar を押したら、次ページへ移ると言うようにしていまし た. そんなわけで0x20を、charか、string で表現したかったわけです. とにかく、お蔭様で目鼻がつきました. 有難うございました.                                    

  • hoge_piyo
  • ベストアンサー率57% (15/26)
回答No.1

やりたい事がいまいちわからないのですが・・・ 昔と同じように、0x** というのはC言語のように char hoge = 0x41; というようにしたいと言うことでしょうか?

red_neck
質問者

お礼

有難うございました. おっしゃるとおりです. お蔭様で、ASCII code がまた使えるようになりました. お礼を申し上げます.

関連するQ&A

  • C#のヘルプのどこに各関数を説明する記事があるのか探しています

    最近、Visual C# をはじめました. やっと、Hello World のレベルを終わったところです. 使用しているPC は NEC ValueOne、CPU は Athlon 4200+、XP SP3 です. 次の段階へ進むのに、各函数の説明を探しています.ヘルプの中のどこかにあると思いますが、どうもも見つかりません. 探し方が不十分、努力不足とお叱りを受けそうですが、どなたかヘルプのどこをどう探したらいいのか、教えていただけませんか. お願いします.                                    

  • Microsoft Office Outlook 2007について

    Microsoft Office Outlook 2007が急に応答しなくなりました。 立ち上げると読み込み中ですと出て、そのあと、このプログラムは応答していませんと出ます。 どうなっているの全くかわからない状態です。 わかる方がおられたら宜しくお願いします。 下記は使っているパソコンです。 Microsoft windows xp AMD Athlon(tm) 64x2Dual core Processor 3600+ 1.90 GH2 2.00 GB RAM 

  • 画面がまっくら

    Prototypeというゲームを購入、インストールしました。 起動してみたら、画面が真っ暗で音楽しか聞こえません。 プレイ動画からメインメニューに何があるかを探り、手探りでなんとかゲームを開始できたんですが、やはり音楽のみで画面は真っ暗でした。 何が悪いんでしょうか? 私のPCは Dell Vostro1000 WinXP SP2 DirectX 9.0c AMD Athlon(tm) 64 X2 Dual-Core Processor TK-57 1.90 GHz 1.87 GB RAM 解像度は1280x800 Prototypeの必要スペックは WinXP (with SP3) and DirectX 9.0c 256 MB 3D hardware accelerator card required - 100% DirectX 9.0c with Shader Model 3 support Intel Core 2 Duo 1.86 GHz or AMD Athlon 64 X2 4000+ or better 1 GB of RAM for WinXP / 2 GB WinVista systems 8 GB of uncompressed hard disk space (Plus 500MB for swap file.) DirectX 9.0c compliant sound card 英語はサッパリなので何をどうすればいいのかもサッパリです。 SP3をインストールしてないのが問題っぽいですがどうなんでしょう? 誰か教えてください!お願いします!

  • ASCIIコードを文字に変換したい

    環境はVisualStdio.Net 2008のC++ Windowsフォームアプリケーションです。 C++の経験はまったくありません。 unsigned char型の配列 box[12]の中に既にアスキーコードでデータが格納されています。(例:box[0] = 48'0') これをtextbox->textにアスキーコードではなく文字で格納し、実行時に画面で確認できるようにしたいのですが、 (char)でキャストしてもfomat()で%xや%cにしても「0」でなく「48」で出力されてしまいます。 調べたらVBにはchrという関数があるみたいなんですが、これと同じ機能を持つ関数はVC++にはないのでしょうか?

  • ノートパソコンでシムズ4をプレイしたい

    私はASUS X200MAというノートパソコンを購入しようと思っているのですがそのパソコンではシムズ4で遊べるのでしょうか⁇ 自分で調べたのですが理解が出来ませんでしたので教えて下さい。 (シムズ4で遊べる最低限必要なPCスペック) OS: Windows XP (SP3), Windows Vista (SP2), Windows 7 (SP1), Windows 8, or Windows 8.1 CPU: 1.8 GHz Intel Core 2 Duo, AMD Athlon 64 Dual-Core 4000+ or equivalent (For computers using built-in graphics chipsets, the game requires 2.0 GHz Intel Core 2 Duo, 2.0 GHz AMD Turion 64 X2 TL-62 or equivalent) メモリ: 2 GB RAM 以上 ハードディスク空き容量: ゲーム本体用9 GB以上 / 追加コンテンツや保存用に 1 GB 以上の空き容量 DVD-ROM: DVD ROM ドライブ(インストール時) グラフィックカード: Video RAM 128MB 及び Pixel Shader 3.0対応カード. 奨励: NVIDIA GeForce 6600 以上, ATI Radeon X1300 以上, Intel GMA X4500 以上 サウンド: DirectX 9.0c 対応 DIRECTX: DirectX 9.0c 以上 他: キーボード及びマウス (推奨スペック) OS:Windows 7/8/8.1 64-bit プロセッサ:Intel core i5またはそれ以上 AMD Athlon X4 メモリ:4GBのRAM ハードディスク空き容量: ゲーム本体用9 GB以上 / 追加コンテンツや保存用に 1 GB 以上の空き容量 DVD-ROM: DVD ROM ドライブ(インストール時) ビデオカード:NVIDIA GTX 650またはそれ以上 サウンド: DirectX 9.0c 対応 DIRECTX: DirectX 9.0c 以上 他: キーボード及びマウス

  • C9というネットゲームをDL出来るスペックか・・

    こんばんわ、ご閲覧ありがとうございます。 自分だと、メモリだとかCPUだとか まったく分からず、そのままインストールしたのですが、結局出来てないです。 ネットゲームの名前は「C9」という3Dオンラインゲームです。 C9の必要環境動作 OS: Windows XP , Vista , 7 CPU: AMD Athlon XP 2400+ / Intel シングルコア 2.4GHz メモリ: 512 MB 以上 グラフィックカード: ATI Radeon 9800             Geforce 6600 シリーズ HDDの空き容量 :10 GB 以上 (ダウンロード+インストール) Direct X :Direct X 9.0c 以上 ___________________________________ 私のPCスペック OS:windows7 32ビット メモリ:4096RAM プロセッサ:Intel(R) Core(TM)2 Quad CPU Q8400 @2.66GHz 2.67GHz DirectX バージョン:DirectX11 ローカルディスクの空き容量:364GB ビデオカード:Intel(R) GMA3100 これだけの情報で確認できるのかさえも、わかりません どうか、宜しくお願い致します。

  • Windowsエクスペリエンスのスコア向上について

    現在、Windows エクスペリエンス インデックス の評価が3.9しかありません。 ・プロセッサ:6.3 ・メモリ(RAM):5.5 ・グラフィックス:3.9 ・ゲーム用グラフィックス:5.2 ・プライマリ ハードディスク:5.5 一番低いスコアのグラフィックス(3.9)を改善しようと考えております。 1.グラフィックカードを新たに挿せばスコアは上がるのでしょうか? 2.現在、GeForce 6600GT というグラフィックカードを所持していますがこれを挿せばスコアは上がりますか? 3-1.スコアが上がらないのであればどのようなグラフィックカードを挿せばいいのでしょうか? 3-2.オススメを教えていただけますか? PC構成 ■マザーボード:785GM-P45  http://www.msi-computer.co.jp/products/MB/785GM-P45.html ■OS:Windows 7 Home Premium Service Pack 1 ■プロセッサ:AMD Athlon(tm) II X2 220 Processor 2.80 GHZ ■実装メモリ(RAM):2.00 GB (1.75 GB 使用可能) ←(近々増設予定) ■システムの種類:64 ビット オペレーティング システム

  • Zoomのバーチャル背景

    Zoomのバーチャル背景を利用しようとすると、「お使いのデバイスはバーチャル背景をサポートしていません」というメッセージが出て使えません。 1年余り前に購入したもので、スペックもそれほど悪くないはずなのですが。 デバイス名 DESKTOP-33RB9I4 プロセッサ AMD Athlon Silver 3050U with Radeon Graphics 2.30 GHz 実装 RAM 8.00 GB (5.94 GB 使用可能) デバイス ID 6972910D-A659-407A-AAEF-5C3BA2F6305D プロダクト ID 00325-81964-91567-AAOEM システムの種類 64 ビット オペレーティング システム、x64 ベース プロセッサ ※OKWAVEより補足:「NEC 121ware : Windows」についての質問です

  • ディアブロ3用にパソコンを購入したい

    今度出るディアブロ3用にデスクトップパソコンを購入する予定です。 マウスコンピューターなど、BTOショップの物を買おうかと考えています。 出来るだけ安く、最適なものを買いたいんですが、おすすめのパソコンがあれば教えて下さい。 あと、OSはwindows 7 (32bit)を購入してありますので、OS抜きの構成で良い物があれば教えて下さい。 ちなみに、ディアブロ3の推奨環境は以下になります。 ・Windows® Vista/7 ・Intel Core 2 Duo 2.4 GHz or AMD Athlon 64 X2 5600+ 2.8 GHz ・2 GB RAM ・NVIDIA GeForce 260 or ATI Radeon HD 4870 or better よろしくおねがいします。

  • オンラインゲームをすると固まります。

    オンラインゲームをすると固まります。 始めて数分でPC自体が固まってしまい、タスク落ちすら出来なくなるので毎回強制終了している状態です。 ドラゴンネストというゲームで、容量はかなり空いており動作環境は満たしているのですが何故でしょうか? DirectXは最新になっています。 ちなみにクロスブレイブというゲームは何の問題もなく出来ました。 PCの知識があまりに薄いため困っています。 何か解決策がありましたら教えてください。 以下、私のPCスペックです。 Windows XP Home Edition AMD Athlon(tm) 64 X2 Dual Core Processor 5000+ 2.60GHz 2.00 GB RAM GeForce 8600GT

専門家に質問してみよう