検索結果 26 件

by
12年前
フォーラム: C言語何でも質問掲示板
トピック: 新ANSI C言語辞典 に代わる本
返信数: 6
閲覧数: 5008

Re: 新ANSI C言語辞典 に代わる本

さっそくsoftya(ソフト屋)さんの進めてくださった本を買ってきました。

 前にブックオフは近所にある2店は見てみたのですが、見つかりませんでした。ネットで中古本を買うのは全く確認ができないので、気長に古本屋めぐりをしてみたいと思います。

 今はCだけなので、たかぎさんに紹介いただいた本は使えないのですが、大学に入って落ち着いたらC++も覚えようと思っているので、その時に手に取ってみたいと思います。

 質問に答えていただきありがとうございました。
by
12年前
フォーラム: C言語何でも質問掲示板
トピック: 新ANSI C言語辞典 に代わる本
返信数: 6
閲覧数: 5008

新ANSI C言語辞典 に代わる本

 以前、こちらで質問させていただいたときに
「新ANSI C言語辞典 」という本を薦められたので、あちこちの本屋をめぐってみたのですが、
見つからなかったため、この本の代わりとなる本を探しています。

 よろしくお願いします。

以前質問したときのページ
http://dixq.net/forum/viewtopic.php?f=3&t=10329
by
12年前
フォーラム: C言語何でも質問掲示板
トピック: ビット演算と戻り値
返信数: 19
閲覧数: 8109

Re: ビット演算と戻り値

>>softya(ソフト屋)さん さっそく参考記事の方読んでみます。 >>beatleさん 「新ANSI C言語辞典」を次に書店を訪れたときに探してみます。 最初の質問内容からだんだんとずれていってしまい、もうしわけありませんでした。  全くとっかかりのつかめなかった unsigned short get2 (unsigned char *s){ ----略------ return s[0] << 8 | s[1]; } をどうにかこうにか迫って行けそうになってきたので、ちゃんと理解できているかを実際にコードを書いて確かめてみたいと思います。  boxさん、softya(ソフト屋)さん、IS...
by
12年前
フォーラム: C言語何でも質問掲示板
トピック: ビット演算と戻り値
返信数: 19
閲覧数: 8109

Re: ビット演算と戻り値

printf("%d\n",sizeof(unsigned int)); で確認してみましたが4バイトでした。 また、読み返してみるとprintfのフォーマット指定しもunsigned intを表示させるなら%uでした。 unsigned int promote = 0xffffffff; printf("%u\n",promote); promote += 1; printf("%u\n",promote); printf("size:%d\n",sizeof(unsigned int)); 上記のようにして試してみたところ 4294967295 0 4 と出力されたので、unsigned ...
by
12年前
フォーラム: C言語何でも質問掲示板
トピック: ビット演算と戻り値
返信数: 19
閲覧数: 8109

Re: ビット演算と戻り値

 環境を書き忘れていました。すみませんでした。 OS winXp 32bit コンパイラ VC++2008 以下上記の環境を前提条件としてお願いします。 >>beatleさん >>softya(ソフト屋)さん >>ISLeさん 計算結果が ・signed int型で表せるならばsigned int型に昇格 ・signed int型で表せずにunsigned int型で表せるならばunsigned int型に昇格 ということでしょうか? もし上記のように昇格するとすると signed int型でもunsigned int型でも表せないものはどのような扱いになりますか? unsigned int ...
by
12年前
フォーラム: C言語何でも質問掲示板
トピック: ビット演算と戻り値
返信数: 19
閲覧数: 8109

Re: ビット演算と戻り値

>> softya(ソフト屋) さん >>メモリ:1|2|3|4|5|6|7|8|8|7|6|5|4|3|2|9 (右に向かってメモリ上のアドレスが大きくなっていく) は、1ビット区切りです。16個の区切りをつけるのに番号を付れば楽に区切れたので本来記録できないはずの値を載せてしまいました。すみません。 メモリ:1|1|1|1|1|0|0|1|1|1|1|0|1|0|0|0(1bit単位で計16bit、右に向かってアドレスが大きくなる) ポインタsが指し示すのが上記メモリの最左端とすると 2進数 16進数 s[0] = 1|1|1|1|1|0|0|1 0xf9 s[1] = 1|1|1|0|1...
by
12年前
フォーラム: C言語何でも質問掲示板
トピック: ビット演算と戻り値
返信数: 19
閲覧数: 8109

Re: ビット演算と戻り値

>>この場合のポインタは配列として処理しているだけなのですが、s[0]とs[1]は何処の値をそれぞれ何バイト取り出すことになるでしょうか? メモリ:1|2|3|4|5|6|7|8|8|7|6|5|4|3|2|9 (右に向かってメモリ上のアドレスが大きくなっていく) ポインタsが指し示すのが上記の1のアドレスだとすると、 s[0] = 1|2|3|4|5|6|7|8 s[1] = 8|7|6|5|4|3|2|9 のように、s[0],s[1]ともに1バイトずつ取り出す  こういうことでしょうか? >>いえ、1バイトの変数に対して<<3演算してもこうはなりません。 実際にprintfして確認してみて...
by
12年前
フォーラム: C言語何でも質問掲示板
トピック: ビット演算と戻り値
返信数: 19
閲覧数: 8109

Re: ビット演算と戻り値

s[0],s[1]・・・がそれぞれ1バイトのunsigned char型であるということを書きたかったのですが、あきらかに言葉不足でした。もうしわけありません。

<<演算子は 
aを変数,xを定数としたとき 
a << x はaをxビット分だけ左にずらす演算子だと思っています。
例・1バイトの変数
10011011(二進数表記)にたいして << 3とすると 11011000を返す

 ポインタであることをどのように利用されているのかは、分かりません。
by
12年前
フォーラム: C言語何でも質問掲示板
トピック: ビット演算と戻り値
返信数: 19
閲覧数: 8109

ビット演算と戻り値

コード:

unsigned short get2 (unsigned char *s){
----略------
return s[0] << 8 | s[1];
}
戻り値の部分では一体どのような手順で、どのような演算が行われているのでしょうか?

また、sは1バイトの変数であるのにどうしてこの関数は2バイトの変数であるunsigned short型の値を返すことができるのでしょうか?
by
12年前
フォーラム: C言語何でも質問掲示板
トピック: コードリーディングの方法
返信数: 2
閲覧数: 1514

Re: コードリーディングの方法

 まさにそれです。
ありがとうございます。
by
12年前
フォーラム: C言語何でも質問掲示板
トピック: コードリーディングの方法
返信数: 2
閲覧数: 1514

コードリーディングの方法

 以前どこかのページでwikiを利用したコードリーディングの方法が載っていて今度試してみようと思ったのですが、
そのページをブックマークしていなかったため、今その方法を解説したページを探しています。
ご存知の方がおられましたら、教えてください。

 また、長いソースをしっかりと理解するうえで気をつけておくべきことなどあれば教えてください。
読もうと思っているソースは9000行前後です。
by
12年前
フォーラム: C言語何でも質問掲示板
トピック: WinSock 代入式が理解できない
返信数: 9
閲覧数: 4290

Re: WinSock 代入式が理解できない

解決の連絡とお礼が遅れて申し訳ありませんでした。
みなさまのご協力のおかげで無事解決することができました。
本当にありがとうございました。
by
12年前
フォーラム: C言語何でも質問掲示板
トピック: WinSock 代入式が理解できない
返信数: 9
閲覧数: 4290

Re: WinSock 代入式が理解できない

もうしわけありませんでした。次回からはURLを載せるようにします。 //LPHOSTENT(lphost) typedef struct hostent FAR *LPHOSTENT; //SOCKADDR_IN(sockaddr) typedef struct sockaddr_in { #if(_WIN32_WINNT < 0x0600) short sin_family; #else //(_WIN32_WINNT < 0x0600) ADDRESS_FAMILY sin_family; #endif //(_WIN32_WINNT < 0x0600) USHORT sin_port; ...
by
12年前
フォーラム: C言語何でも質問掲示板
トピック: WinSock 代入式が理解できない
返信数: 9
閲覧数: 4290

Re: WinSock 代入式が理解できない

1-lpHost構造体のメンバであるh_addr_listは目的の情報(IPアドレス)へのポインタが入っている。
つまり、*lpHost->h_addr_list はIPアドレス情報(数値)を表すもの

2-上記の値をLPIN_ADDR型にキャストする

3-LPIIN_ADDR型はポインタ型なので、キャストされた結果あらわすのは目的の情報(IPアドレス)へのポインタだから、実際の数値を左辺に代入するために*をつけることによってポインタのさす数値としている

ということでよいのでしょうか?

やはり、ポインタに対する理解が不足しているのでわからないのでしょうか?
by
12年前
フォーラム: C言語何でも質問掲示板
トピック: WinSock 代入式が理解できない
返信数: 9
閲覧数: 4290

Re: WinSock 代入式が理解できない

すみません。言葉が足りませんでした。
自分は書籍版の「猫でもわかるネットワークプログラミング」を参照しながら学んでいました。
自分が読んでいるところに対応するところがwebにおける「猫でもわかるネットワークプログラミング」のサイトの第230章です。
書籍「猫でもわかるネットワークプログラミング」を持っていない方も多数いると思ったので、対応するwebページも載せたほうがいいと思ったですが、
わかりづらくて大変申し訳ありませんでした。
by
12年前
フォーラム: みんなでソースコードをレビューしよう
トピック: 16 進 HTML/CSS カラーコードの10進RGBへの変換
返信数: 1
閲覧数: 10974

Re: 16 進 HTML/CSS カラーコードの10進RGBへの変換

好みの問題かとも思うのですが、

コード:

/*長さチェック*/
    if(len!=4 && len!=7)return 0;
    /*先頭の文字チェック*/
    if(code[0]!='#')return 0;
の部分はそれぞれの条件違反ごとに戻り値を変えるかメッセージを表示するわけでなければ

コード:

if((len != 4 && len != 7) || code[0] != '#')
return 0;
と書くほうがすっきりするような気がします。
by
12年前
フォーラム: C言語何でも質問掲示板
トピック: WinSock 代入式が理解できない
返信数: 9
閲覧数: 4290

WinSock 代入式が理解できない

sockaddr.sin_addr = *((LPIN_ADDR)*lpHost->h_addr_list); 猫でもわかるネットワークプログラミング 第230章の部分を書籍版を参照していたのですが、上記の部分をどのように理解していけばいいのかわかりません。 変数は以下のように定義されています。 LPHOSTENT lpHost; SOCKADDR_IN sockaddr; #include <winsock2.h> ただ、2つの変数のどちらの型も調べてみても、どうもしっくりとくる解説のページがなくてどうにもなりませんでした。 SOCKADDR_IN構造体は接続するために必要な情報を格納するも...
by
13年前
フォーラム: C言語何でも質問掲示板
トピック: 圧縮ファイルの解凍(raw)?
返信数: 3
閲覧数: 2321

Re: 圧縮ファイルの解凍(raw)?

printfデバッグは試してみたのですが、 huffの配列の個数が1025個でまた、その変数の値を10進数16進数どちらでみても全く意味がとれませんでした・・・ >>機能的には英語にあるコメント通りだとは思いますが。 自分の勉強不足なだけなのですが、英語が大変苦手で、コメントを正確に和訳(理解)できていません  自分では以下のように和訳したのですが、肝心の2文目の意味がうまく取れていません。 Construct a decode tree according the specification in *source. 複合化用のハフマン木を*source配列を種にして作る。 The first...
by
13年前
フォーラム: C言語何でも質問掲示板
トピック: 圧縮ファイルの解凍(raw)?
返信数: 3
閲覧数: 2321

圧縮ファイルの解凍(raw)?

 デジタル一眼レフのraw(.nef形式 nikon d5000で撮影)を自分で現像するためにいろいろとやっていました。日本語の情報がまともに見つからないので、海外のサイトを調べていた中で、以下のような記述をみつけました。 Compression is a Huffman tree and a quantization table. これは圧縮形式がハフマン木と量子化テーブルから成り立っているということでいいのでしょうか? もし、そうであるならば、この二つのことについて解説していただけませんでしょうか?  自分でも調べてみたのですが、ハフマン木の圧縮の仕組みはわかったのですが、それをnefファ...
by
13年前
フォーラム: みんなでソースコードをレビューしよう
トピック: _tstofの代わりの関数
返信数: 5
閲覧数: 8403

Re: _tstofの代わりの関数

(int)_tcslen(buf)>=16のときにx[20]とかbuf[21]とかにアクセスして別のメモリ領域を書き換えてしまう、という理解で大丈夫ですか?今の今までそんなこと考えても見ませんでした。早速16桁を超える場合の処理を書きます。 >>double x = .1; >>double y = 5e-2; こんな表記方法もC/C++でも許さているのですか!!すごく勉強になります。今回はこのような入力を受け取ることがないのがわかっているので、使いませんが、今度必要になってくるはずなのでこのページをしっかりとブックマークします。  罵詈雑言の嵐を予想していただけに、これほど親切に批評していた...
by
13年前
フォーラム: みんなでソースコードをレビューしよう
トピック: _tstofの代わりの関数
返信数: 5
閲覧数: 8403

Re: _tstofの代わりの関数

・WideCharToMultiByteでANSI文字列(char)に変換してatof ・_tcstod どちらの関数も調べてみました。コンパイラから「定義されていない」と起こられることもなく、まだ、試していないのですが、調べた限りではうまくいきそうです。一回charに変換すればいいというのは盲点でした。_tstofが使えないならatofもつかえないだろうという先入観に取り付かれていました。 >>16桁を超える入力があると、範囲外アクセスが生じる   windows ce上で自分がプログラミングする上では、16桁を超える変数を扱うとしたら、その数値自体がもともとエラーになるべきものなので、16...
by
13年前
フォーラム: みんなでソースコードをレビューしよう
トピック: _tstofの代わりの関数
返信数: 5
閲覧数: 8403

_tstofの代わりの関数

 windows ce上で_tstof()を使おうとしたら、「そんな関数定義されてない」とコンパイラに怒られたため、_tstof()関数の換わりの関数を作ってみました。 変数の命名法がよくわからないため、なおのこと読みづらいコードになっていると思いますが、その点も含めて酷評希望です。 #include <stdio.h> #include <TCHAR.h> #include <math.h> double my_tstof(TCHAR buf[]); int main(void){ double x; if((x=my_tstof(_T("-1.45"))) == NULL) printf(...
by
13年前
フォーラム: C言語何でも質問掲示板
トピック: ■ 2011年 明けましておめでとうございます! ■ 【新年挨拶トピ】
返信数: 28
閲覧数: 12826

Re: ■ 2011年 明けましておめでとうございます! ■ 【新年挨拶トピ】

あけましておめでとうございます。
来年は受験なんであまりこれそうにないのが残念でなりません。
by
13年前
フォーラム: C言語何でも質問掲示板
トピック: Basicのエミュレータ作成:完全に行き詰りましたTT
返信数: 0
閲覧数: 1422

Basicのエミュレータ作成:完全に行き詰りましたTT

WindowsCE上で動作するBasic(プログラミング言語)のエミュレータを作っています。 手始めにXP上で動作するものを下のサイトを見ながら作ってみて、それをceに移植しようともがいています。 自分の知識ではぐぐるキーワードさえもう、思いつかず、どうにも手に負えなくなってしまいました。 せめてCE用のデバッガがあればもう少しがんばれそうなのですが、CE用のデバッガも探しても見つからず・・・ 参考にしたサイト URL:http://masudahp.web.fc2.com/cl/mbasic/index.html 使用OS WindowsXP WindowsCE6.0core(SHARP B...
by
13年前
フォーラム: C言語何でも質問掲示板
トピック: セキュリティソフトの作成
返信数: 2
閲覧数: 9712

Re: セキュリティソフトの作成

ありがとうございます。すごく参考になります。
フィルタドライバを作成すればよいのですか。
早速、調べてみます。

>>ウイルス側もバレないように自分のコードを変化させ
コードを変化させるほど複雑なウイルスはとりあえず、最初は考えずに作るつもりです。
by
13年前
フォーラム: C言語何でも質問掲示板
トピック: セキュリティソフトの作成
返信数: 2
閲覧数: 9712

セキュリティソフトの作成

 タイトルに書いた通りではあるのですが、セキュリティ系のソフトを作ってみたくなりました。 実用性は考えていなのですが、市販のウィルス対策ソフト等がどのような仕組みになっているのか少しでも理解できれば良いと 考えています。  まず、ウィルススキャンソフトの方から作ってみようかと思っています。 そこで、まずつけるべき機能として考えているのは  1不審な動作をしているプログラムを見つけたら警告する。  2事前にウイルスとして登録したプログラムが動作または、存在しているのを発見したら警告or削除する  3ファイルを指定すると、そのファイルがウイルスであるかどうかを確認する をできるようにしたいです。 ...

詳細検索ページへ移動する