入出力のときはJISの文字コード表の値が使われ、それ以外の計算などにおいては通常の2進数が使われるとのことですが、その変換はどのように行うのでしょうか。

テキストには「1~9の文字には16進数の(0030)を減算」「A~Fの文字には(0037)を減算」と書いてあります。

例えば
’5’は内部コードでは(0035)、
16進数の数値では(0005)
数値と文字コードの差は16進数で(0030)

というのは理解できます。

ただアルファベットになると理解できません。

例えば
’A’は内部コードで(0041)
16進数の数値では(000A)
数値と文字コードの差は16進数で(0037)

なぜここで(0037)になるのでしょうか・・。
(0041)を(0037)で減算し、(000A)になるまでの過程を教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

文字→数値変換ですね。


説明が面倒ですが、内容はごく単純です。頭をやわらかくして。

0 = 文字コード(0030) - (0030)
1 = 文字コード(0031) - (0030)
2 = 文字コード(0032) - (0030)
5 = 文字コード(0035) - (0030)
9 = 文字コード(0039) - (0030)

ここで、A = 文字コード - 0030 と同様にやりたいところですが、駄目です。
文字コード表を見ればわかる通り、1~9の文字コードとA~Fの文字コードは離れているので。(連続値として変換できない)
A~Fは基準点になる0030という数値が変わってきます。

A = 文字コード(0041) - (0041) + (000A)
B = 文字コード(0042) - (0041) + (000A)
F = 文字コード(0046) - (0041) + (000A)

この、-0041+000A を計算してまとめると、-0037

A = 文字コード(0041) - (0037)

となります。

こんな手法プログラム作成時に本当にやるのか!と言われそうですが、
使う人は使いますし、知っておいて損はないです。
    • good
    • 0
この回答へのお礼

非常に分かりやすくて助かりました!

基本情報も無事高得点も取れて、たまたまこの文字コードに関する問題も出ました!
ありがとうございました!

お礼日時:2014/10/23 12:52

>数値と文字コードの差は16進数で(0030)


>というのは理解できます。

0035 - 0005 = 0030

>なぜここで(0037)になるのでしょうか・・。

0041 - 000A = 0037 (10進だと、65 - 10 = 55 )

全く同じ構造です。
    • good
    • 0
この回答へのお礼

ありがとうございました!

お礼日時:2014/10/23 12:52

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q文字コード指定のないWebページ表示に文字化けするのはHTMLファイルのせいかブラウザのせいか?

宜しくお願いします。
[質問]
 文字コード指定のないWebページ表示に文字化けするのはHTML
 ファイルのせいかブラウザ(IE)のせいか?

 Shift-JISで文字コード指定を明示的にしてないHTMLファイル
 をIEで表示するとタイトルバーやページ上の日本語文字が文字
 化けすることがありますが、これは文字コードの指定をソース
 コードで行ってないHTMLファイルのせいなのか・それともIEが
 誤動作したせいなのか?
 どちらのせいかご存じの方いたら教えてください。

 また、文字コード指定がないHTMLファイルで文字化けする時、
 なぜ普段使用してない文字コードでHTMLファイルを読み込もう
 とブラウザがするのかご存知の方いたら教えてください。
 (テキストファイルだと文字コード指定して保存できますが、
 HTMLファイルは文字コード指定して保存できないと思うので、
 通常Shift-JIS選択してページ閲覧している環境でわざわざ他
 の文字コードで読み込もうとするのか疑問です。)

Aベストアンサー

HTMLファイル作成のアプリケーションとはHTMLエディタやテキストエディタのようなものですよね?
.html、.htm、両方とも文字コードを選択できるものがありますよ。
最近のフリーのソフトでもEUC-JP、UTF-8、JIS、Shift-JIS、Unicodeは選べますよ。

それ以降の説明は成り立つと思いますよ。
ご存知かも知れませんが念のために文字コードについて詳しく解説されているページを貼っておきますね。

参考URL:http://www.kanzaki.com/docs/jcode.html

QCASLII4桁の16進文字列を数値に変換するプログラム

問 4桁の16進文字列を入力し、それを数値に変換してメモリ上に格納するプログラムを作成せよ。

PROGRAM START
IN IBUF,LEN
LAD GR1,0
LAD GR2,0
LOOP SLL GR1,4
LD GR3,IBUF,GR2
CPL GR3,='A'
JMI NEXT
ADDL GR3,=9←←←
NEXT AND GR3,C000F
ADDL GR1,GR3
LAD GR2,1,GR2
CPL GR2,=4
JMI LOOP
ST GR1,ANS
RET
IBUF DS 4
LEN DS 1
C000F DC #000F
ANS DS 1
END

上記の←←←の行は入力文字がA~Fの場合の数値の調整の為にあるらしいのですが、なぜ9を加算しているのか分かりません。ご理解のある方はお手数ですが教えて頂けないでしょうか。よろしくお願い致します。

問 4桁の16進文字列を入力し、それを数値に変換してメモリ上に格納するプログラムを作成せよ。

PROGRAM START
IN IBUF,LEN
LAD GR1,0
LAD GR2,0
LOOP SLL GR1,4
LD GR3,IBUF,GR2
CPL GR3,='A'
JMI NEXT
ADDL GR3,=9←←←
NEXT AND GR3,C000F
ADDL GR1,GR3
LAD GR2,1,GR2
CPL GR2,=4
JMI LOOP
ST GR1,ANS
RET
IBUF DS 4
LEN DS 1
...続きを読む

Aベストアンサー

文字列の0~9の文字コードは16進表記では30~39です。同様に文字列のA~Fは16進表記では41~46です。
0~9は下位4ビットが0~9でいいのですがA~Fは下位4ビットが1~6ですよね。だから9足してA~Fにしておくのだと思います。

Q文字コードを調べる自作関数

A1セルに「あ」と入力したら、B1セルに文字コードを表示させる自作関数を作りたいのですが、
全くわかりません 泣

とりあえず
Public Function 文字コードへ変換() As Long

End Function
を作るまではわかりました!笑

ひらがなの文字コードが-32097 ~ -32015
ということなのでLongにしました。

続きがわかる方がいましたら助かります!
本当暇な時でいいので
よろしくお願いします。

Aベストアンサー

こんにちは。

VBAでは、通常、Shift JIS か、Unicode です。ワークシート関数のCODE は、JISです。どちらにも存在しないものが、JIS句点です。

>Public Function 文字コードへ変換() As Long
>
>End Function
>を作るまではわかりました!笑

ユーザー定義関数で、「文字コードへ変換」として、引数なしでは、使えません。

>ひらがなの文字コードが-32097 ~ -32015

というなら、Long 型ですが、それでどうするかなのです。なぜPublic キーワードを入れているのか、それで「続き」と言われても、4コマ漫画の最後のコマを埋めてください、という感じがして、目的は、いったい、どうしたいのか分かりません。

この分野の全体は、思っている以上に簡単ではないと思います。

QCASLII:メモリの値について

LESSON3_8_2 START
; FFFFから0FFFを論理減算
LD GR1,CFFFF ;FFFFをロード
SUBL GR1,C0FFF ;FFFF-0FFF
ST GR1,ANS ;結果をANSに格納
RET
CFFFF DC #FFFF
C0FFF DC #0FFF
ANS DS 1
END

1週間で分かる集中ゼミ【CASLII】P.274より抜粋

以上のように、演習問題の解答例があったのですが下から4行目と3行目のCFFFFとC0FFFのメモリの値は存在しないのではないでしょうか?COMETIIの場合、アドレスとして0000~FFFFまでの値しか使用できないと習ったのですが…

Aベストアンサー

CFFFFとC0FFFは、単なるラベルですので問題有りません。
(実際のアドレスがどこに割り当てられるかわ分かりませんが、0000~FFFFまでに納まります)
C は、CONST (定数)の意だと思います。

Qmysqlのデータベースの文字コードの変換について

mysqlのデータベースの文字コードの変換について教えてください。

テストサーバー環境で誤って文字コードUTF-8のデータベースを作成し、文字コードEUC-JPのデータを投入してしまいました。

それでもテストサーバー環境では文字化けせずにウェブアプリを表示できていましたが、テストサーバーのデータをエクスポートすると、テキストエディタで開いた時点で文字化けしています。
(文字コードはUTF-8、EUC-JPのいずれでも)

もちろんそのデータを本番サーバーにインポートしても文字化けしてしまいます。
(データベース文字コードはUTF-8、EUC-JPのいずれでも)

テストサーバーからデータをエクスポートする前に文字コードを変換することは可能でしょうか?

もしくは他に問題を解決する方法はありますでしょうか?

ご存知の方がいらっしゃいましたら教えてください。

Aベストアンサー

MySQLだけでは、既に入れてしまったデータの文字コード変換は難しいのでは?
phpかperlかで、文字コードを、プログラムで判定して、必要な文字コードへ変換する作業を挟む必要があるでしょう。

大まかな作業手順
1.select * from table_name
で全項目全行取得(データが大きいなら、limitで適宜行数分割)

2.各行、各項目データの文字コード判定、変換

3.変換後データを、csvで書き出して、別の新しく作ったtable(本番サーバーなど)へLOAD DATA INFILE

Q情報処理技術者試験センター・CASLIIシミュレータのアセンブラ

独立行政法人情報処理推進機構・情報処理技術者試験センターによる、CASLIIシミュレータについての質問です。
インストールしましたが、使い方がどうしてもわからず、悩んでいます。
書いてあるとおり、readmeのpdfも、丹念に読み、自分なりに本でもサイトでも調べつくしましたが、どうしてもわかりません。
おそらく、簡単なところで突っかかっているのかもしれませんが、自分では解決できません。
お教えください。
必要なjavaなどはすべてインストールしました。コマンドプロンプトによるアセンブラということで、いろいろ試してみましたが、どうすればテストプログラムを試せるのかがわかりません。
もちろん、テストプログラムについて書かれた、ExplanatoryNote.txtもよく読みました。

アセンブラ言語は一般的にメモ帳、コマンドプロンプトで、プログラミングするようですが、どんな文をどこに入力すれば動くのでしょうか。バッチファイルについても調べましたが、どうすればよいのかわかりません。
とりあえずコマンドプロンプトに、ファイル名をいろいろ入力してみましたが、「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」と出ます。
解決方法を教えてください。お願いいたします。

独立行政法人情報処理推進機構・情報処理技術者試験センターによる、CASLIIシミュレータについての質問です。
インストールしましたが、使い方がどうしてもわからず、悩んでいます。
書いてあるとおり、readmeのpdfも、丹念に読み、自分なりに本でもサイトでも調べつくしましたが、どうしてもわかりません。
おそらく、簡単なところで突っかかっているのかもしれませんが、自分では解決できません。
お教えください。
必要なjavaなどはすべてインストールしました。コマンドプロンプトによるアセンブラと...続きを読む

Aベストアンサー

>とりあえずコマンドプロンプトに、ファイル名をいろいろ入力してみましたが、・・・

このお話からすると、アセンブラ等々の意味が理解できてないのかなぁ、と推察されます。

アセンブラ言語というのは、ソースファイル(テキストファイル形式)をまず作ります。(たぶんこれはお作りになったと思います。)

次に、このソースファイルをアセンブラにかけて、obj(オブジェクト)ファイルというのを作ります。

アセンブラのかけ方は、#2の方が書かれているとおりです。

その後、実行形式のファイル(.comや.exe)にするには、リンカというプログラムを使わなければなりません。

そのリンカというプログラムもコマンドプロンプトから、アセンブラを使ったように、

c:¥(リンカのプログラム) (objファイル)
と言う具合(色々なスイッチは忘れてしまいましたが)にして実行形式のファイルを作ります。

もし、ご存じでしたら大変失礼しました。

Q文字コードの調べ方を教えて下さい。

文字コードの調べ方を教えて下さい。
外字を作るため、文字コード表から参考の漢字を表示したいのです。
文字コードを調べる方法を教えて下さい。

Aベストアンサー

Word2002以降
文字が解っているなら
文字を入力
入力した文字の直後に文字キャレットがある状態で
Alt+X とキー操作すればUnicodeの文字コードに変換されます。
再度、Alt+X とキー操作すれば元の文字が表示されます。
Windows XPの外字エディタはUnicode仕様だったと思います。

文字コードを使わなくても
「参照」ダイアログの「形」の処に入力、あるいはコピペすることができます。

外字エディタの使い方
http://www.gon-net.jp/windows/gaizi/gaizi.htm

QCASLII:文字列→数字への変換の原理

CASLIIにおいて
文字列を数字へ変換する場合、000FでAND演算をしますよね?この方法で変換が行なえることはわかるのですが、なぜ000FでAND演算をすると変換されるのか、その原理が分かりません。
ご教授のほどお願い致します。

Aベストアンサー

数字の文字列表現は、16進表記では
0が0x30、1が0x31...9が0x39
となりますので、上位4ビットをクリアして、下位4ビットを維持すれば数値に変わります。

QJavaScriptの文字コードについて

テキストボックスに入力された文字の文字コードを表示させたいのですが、
/を入力すると、文字コードは191と出力されます。
/の文字コードは47だったと思うのですが。

文字コードを出力するソースは以下のようになっています。

//--押されたキ-コードを返す
function getKEYCODE_A(){
alert("true" + event.keyCode)
}

これをinputタグのonKeyUp属性に指定しています。

なぜ/の文字コードが191となるのか分かる方がいましたら、
教えてください。
よろしくお願いします。

Aベストアンサー

onkeydown、onkeyup では基本的に押されたキーの Unicode を返し、onkeypress では基本的に入力されようとしている文字のコードを返すようです。なので表示されるコードが違うということです。

QCASLIIについて

行 ラベル 命令 オペランド
01     LD  GRO、=0
02     LD  GR1、=10
03 L1  SUBA   GR1、=1
04     JMI   OWARI
O5     LD   GR2、DATA、GR1
06 L2   JZE   L1
O7     JPL   L3
08     ADDA  GRO、=1           09 L3   SLL   GR2、1           10     JUMP  L2
11 OWARI  ST   GRO、ANS
12     RET
13 DATA  DC      ‘TOKYOOSAKA‘
14 ANS  DS    1   
15     END

この文で、5行のLD GR2 DATA GR1に14行目を入れるとGR2は、‘A‘が入ると思うのですが、次の70と80行目のやり方がわかりません。またGROは、最終的に何を求めているのですか?あと、9行目は、なにをしているか、教えてください。お願いします             

Aベストアンサー

> 1)5行のLD GR2 DATA GR1に14行目を入れると
> GR2は、‘A‘が入ると思うのですが、
> 次の70と80行目のやり方がわかりません。
入れるのは13行目ですね。1回目は'A'が入りますね。

GR2の値によって06,07,08で処理を3つに分けています。
06:GR2が0なら次の文字を取りに行く。
07:GR2が正の場合、最上位ビットが0なので次のビットを調べに行く。
08:GR2が負つまり最上位ビットが1なのでカウンターを1増やしに行く。

> 2)GROは、最終的に何を求めているのですか?
DATA(TOKYOOSAKA)の中に立っている1であるビットの合計数です。

> 9行目は、なにをしているか、教えてください。
GR2を1ビット左に論理シフトして左から2番目のビットが最上位に出るようにしています。
つまり、ビットオンオフの判定対象をずらしているのです。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報