文字列 バイナリ
Re: 文字列 バイナリ
バイナリにして格納とはどういうことでしょうか?
ではだめなのでしょうか?
バイナリ=2進数なので、こうでしょうか?
バイナリ=2進数なので、こうでしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 文字列 バイナリ
Cユーザーさんが理解しているテキストとバイナリの違いって何でしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 文字列 バイナリ
入力データが"test"の場合の、想定している格納結果は何でしょうか。Cユーザー さんが書きました: このbufに"test"などの文字列を
バイナリにして格納したいのですが
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: 文字列 バイナリ
私の理解度が低く、どういう結果をお望みなのかよくわかっていません。Cユーザー さんが書きました:バイナリに変換された数値が格納されているイメージです
入力データが"test"の場合、bufの各要素(buf[0], buf[1], buf[2]など)に
どういう値が入ればいいのか示していただけますか?
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 文字列 バイナリ
文字1つ1つが数値コードを持っています。
テキストファイルをバイナリエディタで開いてみると分かると思いますが開いて見た事はありますか?
テキストファイルをバイナリエディタで見た上でCユーザー さんが目指すものを説明してもらえますでしょう。
テキストファイルをバイナリエディタで開いてみると分かると思いますが開いて見た事はありますか?
テキストファイルをバイナリエディタで見た上でCユーザー さんが目指すものを説明してもらえますでしょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
Cユーザー
Re: 文字列 バイナリ
どういう格納になるのかわかってないのですが
テキストファイルにTESTと書いてバイナリで開くと
54 45 53 54
となってたのでこの数値が入ってるイメージっす
テキストファイルにTESTと書いてバイナリで開くと
54 45 53 54
となってたのでこの数値が入ってるイメージっす
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 文字列 バイナリ
16進数で54=T 45=E 53=S 54=T です。
[修正]これがテキストファイルや文字列データなのですが、Cユーザーさんが目指すバイナリとはTESTがどういう形式で格納されているべきものなのでしょうか?
そこを知っているのはCユーザーさんだけだと思います。
[修正]これがテキストファイルや文字列データなのですが、Cユーザーさんが目指すバイナリとはTESTがどういう形式で格納されているべきものなのでしょうか?
そこを知っているのはCユーザーさんだけだと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 文字列 バイナリ
テキストデータ、バイナリデータと言いますが、実はコンピュータ上の全てのデータはバイナリデータなんですよ。
54 45 53 54
という32ビットのバイナリデータを、ASCII文字コードで表現された文字列だと「思い込んで」解釈すると"TEST"となるわけです。
しかし、もしかしたら54 45 53 54は音楽データかもしれない。画像の1ピクセルかもしれない。
ということで、テキストデータはバイナリデータの一種類なのです。
だから回答者側としては、Cユーザーさんが「"test"などの文字列をバイナリにして格納したい」と仰っている真意が掴めないんです。
だって、"test"はそもそもバイナリデータですから。
ちなみに、
buf[0] = 0x54, buf[1] = 0x45, buf[2] = 0x53, buf[3] = 0x54
という結果が欲しいなら、みけCATさんが回答しているように、
strcpy(buf, "TEST");
でOKです。
54 45 53 54
という32ビットのバイナリデータを、ASCII文字コードで表現された文字列だと「思い込んで」解釈すると"TEST"となるわけです。
しかし、もしかしたら54 45 53 54は音楽データかもしれない。画像の1ピクセルかもしれない。
ということで、テキストデータはバイナリデータの一種類なのです。
だから回答者側としては、Cユーザーさんが「"test"などの文字列をバイナリにして格納したい」と仰っている真意が掴めないんです。
だって、"test"はそもそもバイナリデータですから。
ちなみに、
buf[0] = 0x54, buf[1] = 0x45, buf[2] = 0x53, buf[3] = 0x54
という結果が欲しいなら、みけCATさんが回答しているように、
strcpy(buf, "TEST");
でOKです。