[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 09/06 22:43 / Filesize : 155 KB / Number-of Response : 705
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門編)Part 101



1 名前:デフォルトの名無しさん [2012/05/04(金) 04:05:26.52 ]
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 100
toro.2ch.net/test/read.cgi/tech/1333108892/
★過去スレ
makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
  ↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 157代目
toro.2ch.net/test/read.cgi/tech/1335517816/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

長くなりそうなコードはcodepadに貼り付けてもいいでしょう
codepad.org/
ideone.com/

29 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 01:52:10.36 ]
>>27もよく解らんが、>>28の応じ方は輪をかけて解らん。

30 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 02:06:26.65 ]
H8 の unsigned int は 16bit = 2byte
superH は 4byte


31 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 02:13:55.71 ]
組込とかなら今でも現役だったりするのかね

32 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 02:41:12.25 ]
ビットフィールドを絶対使えとかいってないでしょ

バカとなんちゃらは使いよう

33 名前: ◆QZaw55cn4c mailto:sage [2012/05/05(土) 03:01:06.57 ]
そりゃそなんだけどさー、ビット演算とか、& | ~ でマスクかけてさくさく書いたほうが、結局楽じゃない?
I/Oのビットを立てたり下げたりするのって、普通こうするじゃん?
いや、C に 0xc6 表現以外にも 「0b11000110」とかあればもっといいんだけどさー。
この前、5bit ごとにデータをシリアル化したい、ていうお題がどこかであったけれども、そのときもビットフィールドを使いたいとか思わなかったなあ。

ここはビットフィールドじゃないとっ、ていうお題があるんだろうか?

34 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 03:13:04.97 ]
書けるのに読めない人にはわからないことかも

35 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 03:43:16.00 ]
bool型がどうしたって?

36 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 05:09:09.58 ]
組み込みでは現役というか定石ですね。
マイコンメーカーが提供しているヘッダファイルにもバリバリ。

37 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 05:10:37.10 ]
>>32
しかし、クズは使いようもないな。



38 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 07:20:33.81 ]
>>33
いちいち定数切るのが面倒。

39 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 07:39:33.82 ]
質問です
n個の配列を作りたいのですが、下のソースでは、int m[n];の行で
constant expected
と言われます。どうしたら良いでしょうか。
SHARPのPC-G850VSです。

main(){
int n = 2;
int m[n];
}

40 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 07:50:35.47 ]
nはdefine定義しろよ

41 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 07:56:26.66 ]
>>39
ANSI-Cでは配列宣言の要素数は定数でなくてはなりません。
int m[2];
と書きましょう。

42 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 08:04:01.82 ]
ビット単位の操作が必要なケースでレイアウトを気にしないでいいケースっていうのはかなり稀だと思うんだよな。
まぁ、必要っていう人が居るなら要るんだろうけど、レアケースであることにかわりはない。

gcc と vc++ ではビットフィールドを配置する上位下位が逆ってことで一部のライブラリで問題が起こるってことも聞いたことあるし。
gcc にはオプションで vc++ に合わせるモードもあるんだけど、ライブラリとして使う性格上、他のライブラリとの兼ね合いで
一律に逆転してもまずいっていう。 具体的には gtk がそれ。

あと、久々に規格を見直していて気付いたんだけど、ビットフィールドはなるべく詰め込むことが must なんだな。

> 十分な領域が残っている場合、構造体内のビットフィールドの直後に続く別の
> ビットフィールドはは同じ単位の隣接したビットに詰め込まなければならない。
> 十分な領域が残っていない場合、入り切らなかったビットフィールドを次の単位に入れるか、
> 又は隣接した単位の境界をまたがらせるかは、処理系定義とする。
(JISX3010:2003 の 6.7.2.1 から引用)

ここで言う「単位」がバイトのことなのかどうかがわらないんだが、原文ではどーなってんだろ。
いずれにせよ >>8 のような1ビットが8個の状況では1バイトに連続して配置されることが保証されてる。

あと、ちょっと本質的じゃないがビットフィールドの変わり種の使い方として構造体の代入抑制がある。
幅ゼロで const なフィールドがあると代入できなくなるんだと。
struct A
{

const int : 0;
};
てな感じ。

43 名前:NAS6 ◆n3AmnVhjwc mailto:sage [2012/05/05(土) 08:20:47.91 ]
DirectXでビットフィールドはバリバリ現役だったりする

44 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 08:27:22.09 ]
で、貴様らは入門スレで何を話してるんだ
おっさんだろ

45 名前:デフォルトの名無しさん [2012/05/05(土) 08:56:49.82 ]
> ANSI-ANSI-Cでは配列宣言の要素数は定数でなくてはなりません。
c言語に限らずこういうのを他の言語でも見かけるが、これって何で?
>>39の例の方が柔軟で良さそうに思えるのだけど。

46 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 09:13:36.47 ]
>>45
ローカル変数はスタックに取るのが普通だから、
コンパイル時に配置を決めてしまいたいんだよ。

47 名前: ◆QZaw55cn4c mailto:sage [2012/05/05(土) 10:33:19.72 ]
>>36
んー。定石ですか。



48 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 11:19:57.15 ]
>>46
配置を決めたいのが理由じゃねーよ。
隠れて何かしないってのがCのポリシーだからだろ。
決めなくても実現できるのはわかるよな。

49 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 11:23:05.84 ]
つーか、c99なら普通にできるだろ。

50 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 11:24:42.88 ]
前スレでも出たが制限はあるけどな。

51 名前:デフォルトの名無しさん [2012/05/05(土) 14:45:42.23 ]
質問おねがいします

for文の中で、下のように10倍、100倍、1000倍、10000倍のような計算を
変数”i ”を使って一つに纏める簡単な方法はありますか?
よろしくお願いします。

for(i = 1・・・


x = x * 10;
-----------ここから下を省略したい--------------------
x = x * 100;

x = x * 1000;

x = x * 10000;

52 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:52:11.70 ]
>>51
この程度がわかんなかったら
後々の学業に支障をきたすレベル
有体に言えば脳障害と見間違う程にひどい


53 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:53:54.19 ]
for (i = 1; i < N; i *= 10)
{
x = x * i;
}

54 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:56:40.57 ]
i *= 10;

55 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:57:15.92 ]
>>52
お前が脳障害だろ。
>>51
まず日本語を勉強しろ。

56 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:57:57.95 ]
>>55
ホンモノの脳障害の糞詰まりのクソ野郎がお出ましかw
巣にこもってでてくんなアホ


57 名前:デフォルトの名無しさん [2012/05/05(土) 14:58:11.12 ]
>>52
ごめんなさいorz
プログラムのプの字も知らず、あるきっかけで数日前にC言語というものを触り始めたばかりですorz

>>53
ありがとうございます。
"i*"が味噌なんですね?
ちょっとやってみます



58 名前:51 [2012/05/05(土) 14:59:27.28 ]
>>55
すみませんどこか日本語おかしかったでしょうか?



59 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:00:03.52 ]
やりたいことと例示している内容が違ってる気がする
32bit整数だとオーバーフローしてるし

60 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:01:36.33 ]
>>51
x = x * 10;
-----------ここから下を省略したい--------------------
x = x * 100;
x = x * 1000;
x = x * 10000;

をそのまま解釈すれば
x = x * 10000000000;
だが、お前がしたいこととは違うんじゃないのか?
日本語ができないならせめて元のコードを示せ。

61 名前:51 [2012/05/05(土) 15:04:07.61 ]
>>59>>60

ああ、そういうことですか
100億なんて数字は使わないし、計算できないですもんね

本当はこうでしたすみません

x = x * 10;
-----------ここから下を省略したい--------------------
x = x * 100;
x = x * 1000;


62 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:06:06.55 ]
だからそれならx = x * 1000000;
でいいだろが。

63 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:13:42.39 ]
for (i = 10; i <= 1000; i *= 10)
{
x += (x * i);
}

こういうことだろうか

64 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:22:17.36 ]
ここはこの程度と宣う>>52に自分が脳障害じゃないってことを示して欲しいとこだな。

65 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:42:05.10 ]
やべぇw
脳みそにクソが詰まった人間同士がクソの垂れ流しあいをしてるwww
素晴らしいw

相手はズブズブのシロートなんだから
やりたいことくらい察してやれよwww
ンなことだからオマイラは脳みそに怪しい部分をお持ちですね
とか言われんダよww

66 名前:デフォルトの名無しさん [2012/05/05(土) 15:42:37.04 ]
もう全部ソースを晒せばいいと思うんだ。

67 名前:デフォルトの名無しさん [2012/05/05(土) 15:47:12.87 ]
やりたいことは察してやるのではなく、引き出してやればいいのだ。



68 名前:デフォルトの名無しさん [2012/05/05(土) 16:36:13.95 ]
うんこがなんか言ってるな。

69 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 16:38:18.94 ]
しゃべるクソなんだからしょうがない


70 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 16:58:04.18 ]
>>51
行き詰まったから質問してるんだろうけど、もっと手前で道を間違ったから行き詰まってるんだよ。
例えて言えばお前の質問は「どうやったらこの道を進めるんですか?」と言ってるようなもんだ。
行き止まりの進み方を聞いたってこっちは知らんがなとしか言えない。 そこは進めない。
「どうやったらxxに行けるんですか?」と聞いてくれれば、 xx がどこか言ってくれれば回答しようがあるんだよ。

要は「自分が行き詰まっているところ」じゃなくて「目的地」を示せってこと。

71 名前:デフォルトの名無しさん [2012/05/05(土) 17:14:44.10 ]
日本語でおk

72 名前:39 mailto:sage [2012/05/05(土) 20:02:31.92 ]
>>48
というと、n個の配列を作る方法はあるのでしょうか。(n=2とは限らない)

73 名前:デフォルトの名無しさん [2012/05/05(土) 20:08:19.73 ]
mallocなりcallocでええやん

74 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:08:26.24 ]
>>72
無い
そういう方法は標準では用意されてない
最初に配列の個数を決めたら後で変えることはできない

こういうのを静的配列と呼ぶ
実行時に配列の長さnを変えられるのは動的配列、
Cは動的配列を標準では提供していない
「C 動的配列」で調べれば出てくる


75 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:14:41.58 ]
コテで無能自慢するのが流行りなんかね

76 名前:デフォルトの名無しさん [2012/05/05(土) 20:21:28.26 ]
知らなかったの?おっくれてるぅ

77 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 20:26:13.72 ]
>>72
C99 ではかなり条件が緩和されてる。
seclan.dll.jp/c99d/c99d04.htm
ただ、ポケコンだと新しい処理系を使うってのも簡単じゃないだろうし…。
普通は malloc でメモリを確保して使うんじゃないかな。

int main(void){
int n = 2;
int* m = malloc(sizeof(int)*2);
//ここで m を使った処理
free(m); // ←メモリの解放
}



78 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:27:13.18 ]
コテなしの無能発言よりはまし。NGできるコテつきは良心的ともいえる。

79 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:32:00.56 ]
>>78
自己紹介お疲れ様です
これからも駄文の垂れ流し、よろしくお願い致します無能様


80 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:39:01.94 ]
>>78
こういう内容の発言なのに自分がコテ付けてないってのは
かなり自家撞着なアホwww
「わたくし、アホでございます」と宣言してるようなモンだw

81 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:48:44.01 ]
自己紹介はやめろ

82 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 21:04:27.71 ]
          ____
       / \  /\  キリッ
.     / (ー)  (ー)\
    /   ⌒(__人__)⌒ \   コテなしの無能発言よりはまし。NGできるコテつきは良心的ともいえる。
    |      |r┬-|    |   
     \     `ー'´   /   
    ノ            \
  /´               ヽ
            ___
       /      \
      /ノ  \   u. \ !?
    / (●)  (●)    \ 
    |   (__人__)    u.   | クスクス>
     \ u.` ⌒´      /
    ノ           \
  /´               ヽ
         ____
<クスクス   /       \!??
      /  u   ノ  \
    /      u (●)  \
    |         (__人__)|
     \    u   .` ⌒/
    ノ           \
  /´               ヽ

83 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 22:42:35.88 ]
>>51
同じく初心者が頭振り絞って考えたけど
こういう事かな?

#include <stdio.h>

int main()
{
int x;
int i;
int j=10;

printf(" 整数を入力\nx=");
scanf("%d",&x);


for(i=0; i<=3; i++)
       {
        x = x*10;
        printf("x * %d = %d\n", j,x);
        j=j*10;
       }
return(0);
}


84 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 22:47:44.92 ]
GNUスタイルは久々に見た
初心者向けの本やサイトでそのスタイルは余りにも見かけない
本当に初心者なのかが疑問に残る
初心者が何もせずに何も見ずにそのスタイルに行きついたなら
ある種の教祖的な素質がある


85 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 23:02:00.16 ]
>>84
へぇー。 手元にある本をざっと見たら確かにその通りだわ。
でも、俺も昔は >>83 みたいに書いてた。
初心者的には括弧の位置が対応してた方が安心できるんじゃないかなぁ。
エディタの支援がある状況だとちゃんとインデント付けてくれるけど、
初心者はそれに慣れてないわけだし。

86 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:17:37.35 ]
最初に使ったコーディングエディタがEmacsでショーも無い書籍を避けて進化すれば素養も昔は書いてたもクソもないよ

87 名前:デフォルトの名無しさん [2012/05/05(土) 23:22:42.18 ]
日本語でおk



88 名前:39 mailto:sage [2012/05/05(土) 23:23:16.24 ]
>>73,74,77
有難うございます。とても勉強になります。
私は取り敢えず入門書を大体読み終えたのですが、まだまだですね…
以下のソースでテストしてみたところ上手く動作したので、今自分の作りたいものを作れそうです。

main(){
int n = 2;
int *m = malloc(sizeof(int)*n);
*m = 1;
*(m +1) = 3;
printf("%d, %d",*m,*(m+1));
}

89 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 23:27:57.12 ]
>>86
因みに俺が最初に C のコーディングに使ったエディタは Vz だったよ。
教員もめんどくさいから最近だと VC++ 選ぶと思うけどな。
C の初心者に Emacs から指導するのは手間なだけだろ。


90 名前:39 mailto:sage [2012/05/05(土) 23:28:20.64 ]
free(m);
忘れてました

91 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 23:29:00.84 ]
>>88
free するかどうかの議論がまた始まるよー。

92 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:39:40.17 ]
for( P=Root, Last=NULL; P != NULL; Last=P, P=P->Next )

この手のfor分は行数ケチスタイル?


93 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:45:01.47 ]
そんな変なの見たことねぇ。

94 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:45:41.53 ]
うん

95 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 23:48:18.69 ]
>>92
意味的にループのための初期化、判定、インクリメントになってるなら、
ケチとかどうとか言う類のものじゃないと思うけどな。
俺はアリだと思うし、実際に書くよ。

96 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:57:19.78 ]
リークの意味がわかってないアホにはうんざり

97 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:58:17.23 ]
それはコードゴルフスタイル



98 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:00:21.67 ]
LastとRootの語をどう使い分けてんのかわけわからん

99 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:19:46.98 ]
とりあえず変数名を大文字で始めるのは気持ち悪い

100 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:36:28.99 ]
気持ち悪いね

101 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:37:16.01 ]
キャメルケース
アッパーキャメルケース
ローワーキャメルケース
スネークケース

あなたはどれ?

102 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:46:42.90 ]
レッドスネークカモン

103 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:48:36.65 ]
>>84,85
pascal の begin / end の段付けを意識した書き方だとこうなるよね。

104 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:49:54.57 ]
>>88,91
おっと信者の出番がきましたか霧

105 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:51:03.93 ]
>>96
勝手にリークを定義されても霧

106 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:51:19.83 ]
質問おながいします

unsigned int abc;


この変数の中身を指定したビットだけ取り出したり操作したりするのはどうすればいいのでしょうか?
例えば、abc = 0b0000000000000000 として、10ビット目だけを反転したり取り出したりしたい場合です。
よろしくおながいします

107 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:53:06.28 ]
>>101
ごめんなさい。もしよろしければそれぞれ教えてください。




108 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:55:24.72 ]
>>89
demacs が遅くて Vz も便利に使ってたけど、どこぞのemacsバインドマクロを早々にいれちゃったなあ。


109 名前:デフォルトの名無しさん [2012/05/06(日) 00:57:56.53 ]
>>106
https://www.google.co.jp/search?source=ig&hl=ja&rlz=&q=C+%E3%83%93%E3%83%83%E3%83%88%E6%BC%94%E7%AE%97&oq=C+%E3%83%93%E3%83%83%E3%83%88%E6%BC%94%E7%AE%97&aq=f&aqi=g6g-m2&aql=&gs_l=igoogle.3..0l6j0i5l2.131.2350.0.2892.12.12.0.0.0.0.125.1076.9j3.12.0...0.0.

110 名前:デフォルトの名無しさん [2012/05/06(日) 00:58:51.17 ]
んげ ロケール情報までURLに・・・糞Googleが

111 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 01:06:03.88 ]
>>106
codepad.org/1GkrqfnM
最小のビットを 0 として大きい方向に1, 2, 3, ... 10 と数えたときの10番目です。
最小ビットを 1 から開始するときは mask = 1 << (10-1) にしてね

112 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:09:25.07 ]
>>107
ローワーキャメル lowerCamel
アッパーキャメル UppterCamel
スネークケース snake_case

キャメルケースはローワーやアッパーのジャンル名だった。 めんご

113 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:10:44.82 ]
へぇ
google様はロケール情報まで付け足してくれるのか
こりゃあいいこと知ったw
ありがとうありがとう
さっそく情報抜き出すよ!


114 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:13:30.53 ]
#define GETBIT(a,b) ((a)&(b1)?1:0)
#define XORBIT(a,b) (a)^=(1<<(b1))

int main(void)
{
unsigned int abc=123;
int bit;
XORBIT(abc,10);
bit=GETBIT(abc,10);
return(0);
}


115 名前:デフォルトの名無しさん [2012/05/06(日) 01:19:04.69 ]
なんだその・は。

116 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:41:51.19 ]
彼の脳内にしか存在しえない
素晴らしい演算記号なのだろう
きっと


117 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:51:20.12 ]
>>115
iPhoneだとゲタに見える
文字コードいくつの文字なんだろ



118 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:52:53.96 ]
これじゃね?


119 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:57:11.76 ]
114です。
マイナス(-)のつもりが全角で化けてたみたい、すまん。

それと
#define GETBIT(a,b) ((a)&(b-1)?1:0)

#define GETBIT(a,b) (((a)&(b-1))?1:0)
の方が良いのですね。


120 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 02:02:00.60 ]
>>119
不精せずにcodepad 等で動かしてみれば?

121 名前:106 mailto:sage [2012/05/06(日) 03:00:44.55 ]
みなさんレスありがとうございます
とりあえず、>>111さんのコードに変数 x を追加して、

x = a & mask;
if(x == 0){printf("10th = 0");}
if(x > 0){printf("10th = 1");}

これでやりたいことができました。
C言語をかじって1ヵ月しかないですが、このスレでは質問すれば有用な返答が頂けて感謝しています。
どうもありがとうございます。



122 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 04:34:36.13 ]
>>121
下のif分はelseにまわした方がよくないか?
というか111がやってるのと逆のシフトを行えば
ifすらいらないぞ

123 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 06:23:57.73 ]
別にシフトすら要らないぞ。
printf("10th = %d\n", !!(a & mask));

124 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 06:27:00.01 ]
printf("10th = %d", (a >> n) & 1);

125 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 12:43:15.68 ]
すいません(つA`)教えてください。
int a,b;
dobule c;
a = 7;
b = 4;
c = b / a;
と書いたのですが、
%f表記でも、cに値が入っていません。
使っているcは、オブジェクティブcなのでスレチかもしれませんが、教えていただけると助かります。

126 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 13:08:02.71 ]
c言語はよくしらないけど
c = (double)a / (double)b;
じゃないの?

127 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 13:15:14.09 ]
>>126
ありがとうございます。
早速試してみます。助かりました。



128 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 14:11:17.74 ]
お礼なんていらないよ

129 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 14:11:43.53 ]
>>126
キャストは一つだけで十分
codepad.org/KyBPyoJA






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<155KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef