質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

6435閲覧

RS232C通信のサムチェックについて

entio

総合スコア19

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2019/05/30 08:41

RS232Cケーブルを使いメッセージの送受信を行いたいです。c言語です。
その際入力したテキストをサムチェックを使い誤り検出を行いたいのですが、サムチェックの流れがいまいちわからずソースコードが書けないという状況です。

問題には「サムチェック対象範囲のデータを2進データとして加算した結果の下位1バイトをASCIIコード2桁(16進)に変換したもの」と書いてあるのですが意味がよくわかりません。
例えば、テキストが0'1'2'の時は
0=30H 1=31H 2=32H
30H+31H+32H=93H
よってサムは9'3'の39H 33Hになるそうです。

参考となるようなソースコードを教えていただけたらなと思います。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2019/05/30 14:42

「サムチェック」とは一般用語の「チェックサム」のことですか?それとも別の意味ですか?
entio

2019/05/31 00:06

同じ内容の質問失礼しました。 論点を変えて質問しなおしたつもりでした。
entio

2019/05/31 00:06

othさん チェックサムと同様です。
guest

回答2

0

ベストアンサー

「サムチェック対象範囲のデータを2進データとして加算した結果の下位1バイトをASCIIコード2桁(16進)に変換したもの」と書いてあるのですが意味がよくわかりません。

って、これ以上わかりやすくしようがないと思います。

テキストが0'1'2'の時は

2進表現は長くなるので、省略しますが、
0は 16進30 (10進 48)
1は 16進31 (10進 49)
2は 16進32 (10進 50)
足すと、16新93 (10進147)。
16進下2桁(つまり93)を1桁ずつASCII文字にすると9 3になります。
文字コードを16進で書くと、39 33 です。

参考:Wikipedia ASCII

投稿2019/05/31 01:28

otn

総合スコア84533

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

entio

2019/05/31 02:06

回答ありがとうございます。 できればその際のソースコードの見本例を教えていただければなと思います。 #include <stdio.h> main() { char text[50]; scanf("%s",&text[0]); /* テキストの入力 */ printf("%02x",&text[0]); /* 入力した文字の16進変換 */ } 例えばこのscanfで入力した内容のものを2進データとして加算して16進に変換したいです。 よくわからないことをしているかもしれません。
otn

2019/05/31 05:50

sum = 0; for(i=0;i<strlen(text);i++) sum+=text[i]; printf("%02X",sum&0xFF); ですかね。
entio

2019/06/03 10:27

「sum&0xFF」 ここがどういう意味かわかりませんでしたが、流れは理解することができました。 ありがとうございます。
otn

2019/06/03 13:24

&は二項演算子です。
guest

0

「C言語 サムチェック」でぐぐると、コード含めいろいろ出てくるので一通り読んでみよう

投稿2019/05/30 08:54

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

entio

2019/06/03 10:27

探しましたがコードが出てきませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問