C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
前
C言語なら俺に聞け 144
https://mevius.5ch.net/test/read.cgi/tech/1514025223/
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 145
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9381-qput)
2018/02/19(月) 22:13:58.98ID:9/te2eSJ0256デフォルトの名無しさん (アウウィフ FF2b-wl/W)
2018/03/05(月) 16:10:41.91ID:QTTd7ohZF どうせキャストして使うんだし
257デフォルトの名無しさん (ワッチョイ a7b3-5Piu)
2018/03/05(月) 17:54:44.07ID:V+sS+FxI0 C言語初心者向けのスレって結局ここでいいんだろうか?
258デフォルトの名無しさん (ワッチョイ 4781-atej)
2018/03/05(月) 17:59:13.03ID:udBqLrh50 いいとも
259デフォルトの名無しさん (スップ Sd7f-C52f)
2018/03/05(月) 18:07:26.38ID:VG/uZnqZd フォルダ内の複数のエクセルシートの決まったシートをtext形式1つにまとめるのって出来ます?
260デフォルトの名無しさん (アウアウカー Sabb-g3Yl)
2018/03/05(月) 18:10:45.91ID:qBuz+lExa261デフォルトの名無しさん (スププ Sdff-mvGf)
2018/03/05(月) 19:32:31.91ID:cQ8T6f3ad プリプロセッサで
#define foo(n) foo_##__typeof__(n)(n)
double a;
foo(a);
って展開したら
foo_double(a)
になって欲しかったのに
foo___typeof__(n)(n)
になりました
良い方法はないでしょうか?
#define foo(n) foo_##__typeof__(n)(n)
double a;
foo(a);
って展開したら
foo_double(a)
になって欲しかったのに
foo___typeof__(n)(n)
になりました
良い方法はないでしょうか?
262片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-dixK)
2018/03/05(月) 20:05:03.11ID:N7KbDTrZd >>261
型名の解釈は、プリプロセッサのレイヤーでは無理です。
型名の解釈は、プリプロセッサのレイヤーでは無理です。
263デフォルトの名無しさん (ワッチョイ 67b3-poP5)
2018/03/05(月) 20:09:24.78ID:SJt3Y40r0 __typeof__ って 演算子っぽいけど
(プリプロセッサ処理の段階では解釈されない:sizeof と同じで
リテラルの整数に展開されているわけではない)
(プリプロセッサ処理の段階では解釈されない:sizeof と同じで
リテラルの整数に展開されているわけではない)
264デフォルトの名無しさん (スププ Sdff-mvGf)
2018/03/05(月) 20:10:41.84ID:cQ8T6f3ad がーん
_Genericも二箇所に分けて書こうとするとredefineって言われて先に定義したほうが消えるし、ジェネリックは結構厳しいんですね……
ありがとうございます
_Genericも二箇所に分けて書こうとするとredefineって言われて先に定義したほうが消えるし、ジェネリックは結構厳しいんですね……
ありがとうございます
265デフォルトの名無しさん (ササクッテロレ Spdb-ON3X)
2018/03/05(月) 22:18:31.83ID:gAM47Ihup 1万行なんて、きちんと設計してないんじゃね?
266デフォルトの名無しさん (ワッチョイ 6704-PLqx)
2018/03/05(月) 22:28:13.08ID:FpxBMBRn0 sizeof(void)って未定義?
未定義ならそのポインタの加算幅も未定義だな。
void* p = (((void*)(&i))++);
未定義ならそのポインタの加算幅も未定義だな。
void* p = (((void*)(&i))++);
267デフォルトの名無しさん (ワッチョイ 47dc-m1UI)
2018/03/05(月) 23:16:20.23ID:THwFwnSk0 キミは正しい
268デフォルトの名無しさん (ワッチョイ e79f-8pbW)
2018/03/06(火) 03:28:05.03ID:ln7SJGum0 本当は void * に対しては足すことも引くこともできない。
269デフォルトの名無しさん (ワッチョイ 6793-fJrP)
2018/03/06(火) 06:45:37.01ID:r6wtBatS0 今ならuintptr_tにキャストして足し算引き算した後でvoid*に戻すのかな。
uintptr_t以前はchar*へのキャストだったかも知れんけど。
しかし実際のところvoid*に対してポインタを進めたり戻したりしたいって、
どういう場面で必要になるんじゃろうか?
uintptr_t以前はchar*へのキャストだったかも知れんけど。
しかし実際のところvoid*に対してポインタを進めたり戻したりしたいって、
どういう場面で必要になるんじゃろうか?
270デフォルトの名無しさん (ワッチョイ dfe3-k3ZN)
2018/03/06(火) 09:29:43.76ID:vOSWGXrq0 char *でいいじゃん
構造がわからないものはバイト列って認識でしょ?
構造がわからないものはバイト列って認識でしょ?
271デフォルトの名無しさん (ワッチョイ 4781-atej)
2018/03/06(火) 10:18:02.26ID:5/zKekdl0 分からない物を適当に扱うって、すごいな
272デフォルトの名無しさん (アウアウカー Sabb-JHL/)
2018/03/06(火) 12:31:29.65ID:aP2GFEvqa しかも符号まであると決めつけてるな
273デフォルトの名無しさん (ガックシ 068f-mvGf)
2018/03/06(火) 12:40:00.86ID:KV/wZ8PJ6 GCCとかchar*と同じ挙動じゃなかったっけ?
274デフォルトの名無しさん (アウアウカー Sabb-g3Yl)
2018/03/06(火) 12:50:23.18ID:Hdg+O/12a gccはね。
275デフォルトの名無しさん (アウアウカー Sabb-g3Yl)
2018/03/06(火) 12:54:06.75ID:Hdg+O/12a そういやポインタ演算と言うと8086用のCコンパイラはfarとか拡張キーワード作ったりして面倒だったな。TurboCだったか。
ああいうなんとも言えないCPUコンパイラだと特殊な決まりがあったりするから要注意だ。
まあ、二度とあんなの市場に出ないような気はするけどな。
ああいうなんとも言えないCPUコンパイラだと特殊な決まりがあったりするから要注意だ。
まあ、二度とあんなの市場に出ないような気はするけどな。
276デフォルトの名無しさん (アウアウカー Sabb-g3Yl)
2018/03/06(火) 12:54:48.33ID:Hdg+O/12a 用のが抜けた。CPU用の、な。
277デフォルトの名無しさん (ワッチョイ 078a-Jyeh)
2018/03/06(火) 12:56:39.10ID:3EYe6qQ70 ハーバードアーキテクチャだとdmとかpm修飾なんてのも
278デフォルトの名無しさん (ワッチョイ e75b-m1UI)
2018/03/06(火) 13:31:13.79ID:PuW1uuBL0 farはTurbo Cに限ったことじゃない
8086用である限り必要になる
8086用である限り必要になる
279デフォルトの名無しさん (アウウィフ FF2b-wl/W)
2018/03/06(火) 14:52:33.73ID:03FKlPoEF tinyモデルでも使えるfar最強
>>279
でもコード64KBの制限はどうしようもない
でもコード64KBの制限はどうしようもない
281デフォルトの名無しさん (ワッチョイ e75b-m1UI)
2018/03/06(火) 16:57:53.89ID:PuW1uuBL0 64KBしかいらないときに使うのがtiny
tiny使いながら64KBじゃきついとか発想が逆
だったら端っからlarge使えつーの
tiny使いながら64KBじゃきついとか発想が逆
だったら端っからlarge使えつーの
282デフォルトの名無しさん (アウウィフ FF2b-wl/W)
2018/03/06(火) 17:18:40.34ID:03FKlPoEF283デフォルトの名無しさん (ドコグロ MMff-qUXR)
2018/03/06(火) 21:11:42.80ID:0OC43do0M284デフォルトの名無しさん (ワッチョイ 67b3-poP5)
2018/03/06(火) 21:46:56.01ID:7Z5LV7MX0 整数の差分じゃなくてポインタの差分じゃろ?
285デフォルトの名無しさん (ワッチョイ df80-zeCZ)
2018/03/06(火) 21:52:27.71ID:GCrMS1Np0 char は、符号付き・符号なしの、どちらか分からないから使うな!
エラーに、-1 を使っていたら、0〜255 しか表現できない事もある
エラーに、-1 を使っていたら、0〜255 しか表現できない事もある
286デフォルトの名無しさん (ワッチョイ 078a-Jyeh)
2018/03/06(火) 21:58:50.50ID:3EYe6qQ70 >>285
9bitなの?(T_T)
9bitなの?(T_T)
287デフォルトの名無しさん (ササクッテロレ Spdb-ON3X)
2018/03/06(火) 22:17:46.38ID:3SdWrwMmp 例外を範囲外の値で判定する様なインターフェースが悪い。
はっきり戻り値は動作結果、値は出力用の引数に入れる。
みたいな設計にすべき。
ちな、C#みたいに戻り値を構造体にするって手もあるぞ。
はっきり戻り値は動作結果、値は出力用の引数に入れる。
みたいな設計にすべき。
ちな、C#みたいに戻り値を構造体にするって手もあるぞ。
288デフォルトの名無しさん (ワッチョイ df80-zeCZ)
2018/03/06(火) 23:01:01.51ID:GCrMS1Np0 素人が、char型の-1 を、エラー値に使っていると、
OS・コンパイラが変わって、その環境では、char型が0〜255 になってる
char型は、符号付き・符号なしの、どちらか分からない
OS・コンパイラが変わって、その環境では、char型が0〜255 になってる
char型は、符号付き・符号なしの、どちらか分からない
>>288
言語内の話と環境(シェルやOS)の話を混同してはならない
言語内の話と環境(シェルやOS)の話を混同してはならない
290デフォルトの名無しさん (ワッチョイ 4781-atej)
2018/03/06(火) 23:46:04.03ID:5/zKekdl0 signed char って書けば?
291デフォルトの名無しさん (ワッチョイ dff9-5eZn)
2018/03/07(水) 02:24:03.38ID:Tq6bvCAq0 >>288
charの使い方が間違っていることが問題なのであって、charを使うこと自体が悪いのではない。
charの使い方が間違っていることが問題なのであって、charを使うこと自体が悪いのではない。
292デフォルトの名無しさん (ワッチョイ 6704-jpR6)
2018/03/07(水) 02:45:29.86ID:kGjiUMXW0 はいー。
1バイト整数を使いたかったら、stdintを使いましょう。
int8_tは内部がcharかもしれないけど便宜上charではありません。
ハイ、復唱。int8_tはcharではありません。
ちなみにC++でバイト表現専用のstd::byteが入りました。すごく使いにくいけど。
1バイト整数を使いたかったら、stdintを使いましょう。
int8_tは内部がcharかもしれないけど便宜上charではありません。
ハイ、復唱。int8_tはcharではありません。
ちなみにC++でバイト表現専用のstd::byteが入りました。すごく使いにくいけど。
293デフォルトの名無しさん (ワッチョイ e75b-m1UI)
2018/03/07(水) 10:31:28.26ID:ylRgY7un0 >>282
どこか間違っているか?
どこか間違っているか?
294デフォルトの名無しさん (ワッチョイ 2761-wl/W)
2018/03/07(水) 12:28:33.48ID:maM/8pnG0 gets_sのsは何の略か教えてください。
295デフォルトの名無しさん (ワッチョイ 078a-Jyeh)
2018/03/07(水) 12:31:25.66ID:/Jrz1mw60 secure
296デフォルトの名無しさん (アウアウカー Sabb-g3Yl)
2018/03/07(水) 12:53:17.89ID:vftXHA5La297デフォルトの名無しさん (アウアウカー Sabb-g3Yl)
2018/03/07(水) 12:53:35.53ID:vftXHA5La >>295
あ、それか。
あ、それか。
298デフォルトの名無しさん (アウアウエー Sa9f-wl/W)
2018/03/07(水) 12:59:49.73ID:L+d1J7Rsa stopper
299デフォルトの名無しさん (ワッチョイ 0761-k3ZN)
2018/03/07(水) 13:42:40.79ID:r9zWShH00 昔はpc-98DOS用に作ったソフトがハード依存コードが無ければ
DOS/V機やTOWNSでも動くって聞いて驚いた。
DOS/V機やTOWNSでも動くって聞いて驚いた。
300デフォルトの名無しさん (スップ Sd7f-b+My)
2018/03/07(水) 13:49:17.29ID:9HCtzU4sd safe
301デフォルトの名無しさん (ワッチョイ df5d-W8CT)
2018/03/07(水) 16:58:54.65ID:+xlstTJJ0 N5200 で LSI C-86 試食版を使ってた……ような気がする。昔のことだから記憶が曖昧だ。
302デフォルトの名無しさん (ワッチョイ e75b-m1UI)
2018/03/07(水) 17:13:49.35ID:ylRgY7un0 vz?
303デフォルトの名無しさん (ワッチョイ 4781-atej)
2018/03/07(水) 17:14:24.12ID:GwlIl+h20 MS-DOSが動作していれば使えるはず
304デフォルトの名無しさん (ワッチョイ e75b-m1UI)
2018/03/07(水) 17:17:05.15ID:ylRgY7un0 dispelしなきゃ無理じゃね?w
305デフォルトの名無しさん (ササクッテロレ Spdb-ON3X)
2018/03/07(水) 17:21:00.28ID:XsGIcGwmp secureじゃねーだろ。
暗号化だってされてねーんだからw
safetyくらいな感じじゃね?
暗号化だってされてねーんだからw
safetyくらいな感じじゃね?
306デフォルトの名無しさん (アウアウカー Sabb-g3Yl)
2018/03/07(水) 17:25:48.32ID:Rf3JBuAda DOSのシステムコール(なんて言うんだっけ?DOSコール?忘れた)だけを呼び出しているプログラムならハードウェアが違っても動く。
しかしMS-DOSはCUIしかサボートしてないのでグラフィックスは使えない。
当時のプログラムはみんな勝手にOS無視してグラフィックスのVRAMに直接アクセスして絵を出していた。
すると当然他の機種に持っていくと意図した通りに動かない。
しかしMS-DOSはCUIしかサボートしてないのでグラフィックスは使えない。
当時のプログラムはみんな勝手にOS無視してグラフィックスのVRAMに直接アクセスして絵を出していた。
すると当然他の機種に持っていくと意図した通りに動かない。
307デフォルトの名無しさん (アウアウエー Sa9f-wl/W)
2018/03/07(水) 17:26:24.22ID:L+d1J7Rsa int21
308デフォルトの名無しさん (ワッチョイ 7fea-poP5)
2018/03/07(水) 17:27:45.62ID:rG21M89G0 INT 21H なら ファンクションコールだったかの
309デフォルトの名無しさん (ワッチョイ 4781-atej)
2018/03/07(水) 17:28:50.29ID:GwlIl+h20 伝統のCALL 5
310デフォルトの名無しさん (ワッチョイ e75b-m1UI)
2018/03/07(水) 17:29:37.78ID:ylRgY7un0 DOSCALLS.DLLてのもあったなあw
311デフォルトの名無しさん (アウアウエー Sa9f-wl/W)
2018/03/07(水) 17:55:21.18ID:L+d1J7Rsa CP/M か
0066 とかもあったっけ
0066 とかもあったっけ
312デフォルトの名無しさん (ドコグロ MM6b-qUXR)
2018/03/07(水) 19:19:15.79ID:Zw7oeE4wM313デフォルトの名無しさん (アウアウウー Sa2b-m1UI)
2018/03/07(水) 21:48:34.17ID:mAtFjoDLa super man
314デフォルトの名無しさん (ワッチョイ 7361-0aB1)
2018/03/08(木) 05:46:05.86ID:Eav/q7cG0 #define a(b) c##b##d
というマクロでcdを出力したいのですが
a()を呼び出すとエラーになります
解決策ありますでしょうか?
というマクロでcdを出力したいのですが
a()を呼び出すとエラーになります
解決策ありますでしょうか?
315デフォルトの名無しさん (ワッチョイ fb93-ao9L)
2018/03/08(木) 07:45:03.75ID:/HWAGXcB0 >>314 俺のところはエラー出ないみたい。環境によるのかな。
コンパイラのバージョンを示せば詳しい人が現れるかも。
コンパイラのバージョンを示せば詳しい人が現れるかも。
316デフォルトの名無しさん (ワッチョイ 7361-0aB1)
2018/03/08(木) 07:52:57.57ID:Eav/q7cG0 ありがとうございます。
解決しました。
解決しました。
317デフォルトの名無しさん (ブーイモ MM8a-7yGo)
2018/03/08(木) 08:09:34.78ID:Ed7uI0ohM どう解決したか書くのが礼儀ってもんだ。
318デフォルトの名無しさん (ワッチョイ 7361-0aB1)
2018/03/08(木) 08:29:41.94ID:Eav/q7cG0 コンパイラーのエラーが出ないという意見をきいて
試してみたら別のところ―がエラーになっていたということでした。
そして自分が悪質なコンパイラーに騙されていたことに気づきました。
試してみたら別のところ―がエラーになっていたということでした。
そして自分が悪質なコンパイラーに騙されていたことに気づきました。
319デフォルトの名無しさん (ササクッテロレ Sp33-Y2nf)
2018/03/08(木) 09:10:26.22ID:lHBKoGy1p エラーの文章くらい読めよ。
320デフォルトの名無しさん (アウウィフ FF1f-0aB1)
2018/03/08(木) 10:10:36.36ID:ue18PqKiF Cのエラーはエラーの発生個所を教えてくれるけど原因個所は教えてくれない
321デフォルトの名無しさん (ワッチョイ cb5b-uQtz)
2018/03/08(木) 10:25:51.65ID:0lNTHbnP0 おそらく警告とエラーを混同していると思われ
> warning C4003: マクロ 'a' に指定された実引数の数が少なすぎます。
> warning C4003: マクロ 'a' に指定された実引数の数が少なすぎます。
322デフォルトの名無しさん (ワッチョイ fb93-ao9L)
2018/03/08(木) 17:10:32.81ID:/HWAGXcB0 関数型マクロの使用時、カッコの内側が空の場合に、
「引数が指定されていない」と解釈して警告を出すか、
「1個の引数(内容はヌルストリング)が指定されている」と解釈するか、
そういう問題みたいね。
「引数が指定されていない」と解釈して警告を出すか、
「1個の引数(内容はヌルストリング)が指定されている」と解釈するか、
そういう問題みたいね。
323デフォルトの名無しさん (ワッチョイ bbf2-uQtz)
2018/03/08(木) 23:40:10.76ID:nwTnwFPU0324デフォルトの名無しさん (ワッチョイ 4a5d-uQtz)
2018/03/09(金) 00:58:31.73ID:U4YZHGfl0 そういう一般仕様から外れるコンパイラの使用を強制させられたことあるの?
325デフォルトの名無しさん (ワッチョイ cb5b-uQtz)
2018/03/09(金) 06:39:09.84ID:K2/JY7Cc0 cout << typeid(__int8).name(); //char
326デフォルトの名無しさん (ササクッテロレ Sp33-Y2nf)
2018/03/09(金) 10:59:36.49ID:rlkWp7/Ip 誰だよCの話題に別言語持ち出してんの。
327デフォルトの名無しさん (ワンミングク MMda-GEnZ)
2018/03/09(金) 12:10:45.59ID:WqdE+VIZM いやらCね
328デフォルトの名無しさん (アウアウカー Sa7b-vvOV)
2018/03/09(金) 12:13:57.64ID:LlK9d7kba 頭おかC
329デフォルトの名無しさん (ワッチョイ 7361-0aB1)
2018/03/09(金) 16:36:39.04ID:AbBnYUJz0 符号なし64ビット整数を64ビット右シフトすると
0にならないでそのままの時や変な別の値になるときがあるんですけど
コンパイラーのバグですか?
0にならないでそのままの時や変な別の値になるときがあるんですけど
コンパイラーのバグですか?
330デフォルトの名無しさん (アウアウウー Sa1f-whik)
2018/03/09(金) 17:10:28.27ID:aCtfd81Na331デフォルトの名無しさん (ワッチョイ 7361-0aB1)
2018/03/09(金) 17:10:41.68ID:AbBnYUJz0 http://fast-uploader.com/file/7076138459666/
2つのファイルが無いと再現できなかったのでソースファイルを
アップロードしました
コンパイルしてなぜ0にならないのか教えてください。
2つのファイルが無いと再現できなかったのでソースファイルを
アップロードしました
コンパイルしてなぜ0にならないのか教えてください。
332デフォルトの名無しさん (ワッチョイ fb93-ao9L)
2018/03/09(金) 17:11:34.80ID:er4JdT2d0333デフォルトの名無しさん (ワッチョイ 7361-0aB1)
2018/03/09(金) 17:12:19.58ID:AbBnYUJz0 コンパイラーは
gcc version 7.3.0 (Rev1, Built by MSYS2 project)
で試しました。
悪質なコンパイラーに騙されているのかもしれませんね。
gcc version 7.3.0 (Rev1, Built by MSYS2 project)
で試しました。
悪質なコンパイラーに騙されているのかもしれませんね。
334デフォルトの名無しさん (ワッチョイ 7361-0aB1)
2018/03/09(金) 17:25:01.13ID:AbBnYUJz0 ファイル1
#include<stdio.h>
#include<stdint.h>
uint64_t f(uint8_t a,uint64_t b){
printf("%llx\n", b>>(64-a));
return b>>64-a;}
void e(uint8_t a){ f(0,0x8318318318318318);}
void g(uint8_t a){ f(a,0x8318318318318318);}
ファイル2
#include<stdint.h>
uint64_t f(uint8_t a,uint64_t b);
void g(uint8_t a);
void e(uint8_t a);
int main(void) {
g(0);
e(0);
return 0;
}
この二つのファイルをコンパイルして実行してみてください。
よろしくお願いします。
#include<stdio.h>
#include<stdint.h>
uint64_t f(uint8_t a,uint64_t b){
printf("%llx\n", b>>(64-a));
return b>>64-a;}
void e(uint8_t a){ f(0,0x8318318318318318);}
void g(uint8_t a){ f(a,0x8318318318318318);}
ファイル2
#include<stdint.h>
uint64_t f(uint8_t a,uint64_t b);
void g(uint8_t a);
void e(uint8_t a);
int main(void) {
g(0);
e(0);
return 0;
}
この二つのファイルをコンパイルして実行してみてください。
よろしくお願いします。
335デフォルトの名無しさん (ワッチョイ cb5b-uQtz)
2018/03/09(金) 17:27:15.48ID:K2/JY7Cc0 その昔、CPUのバグで16bitレジスタを32bitシフトすると0にならないとかいうのなかったっけ
336デフォルトの名無しさん (ワッチョイ 7361-0aB1)
2018/03/09(金) 17:45:47.23ID:AbBnYUJz0 これからは64ビットのシフト使ってるコードは全てバグの温床になるな。
337デフォルトの名無しさん (ブーイモ MMd6-7yGo)
2018/03/09(金) 18:10:27.57ID:Z9n7UPH0M C11の6.5.7の3より。
If the value of the right operand is negative or is greater than or equal to the width of the promoted left operand, the behavior is undefined.
If the value of the right operand is negative or is greater than or equal to the width of the promoted left operand, the behavior is undefined.
338332 (ワッチョイ fb93-ao9L)
2018/03/09(金) 20:12:23.00ID:er4JdT2d0 >>337 フォローありがとう。この部分ですわ。
6.5.7 Bitwise shift operators ビットシフト演算子 の項。
もしも右オペランドの値が負、または汎整数拡張後の左オペランドの(ビット)幅より
大きいか等しい場合、振る舞いは未定義である。
と言った感じかな。
promoted left operand の部分が「汎整数拡張後の左オペランド」で
合ってるのか自信ないけど。
6.5.7 Bitwise shift operators ビットシフト演算子 の項。
もしも右オペランドの値が負、または汎整数拡張後の左オペランドの(ビット)幅より
大きいか等しい場合、振る舞いは未定義である。
と言った感じかな。
promoted left operand の部分が「汎整数拡張後の左オペランド」で
合ってるのか自信ないけど。
339デフォルトの名無しさん (ワッチョイ 6a80-csLy)
2018/03/09(金) 21:17:55.13ID:ysNVe5/v0 64bit 符号なしを、64bit シフトするって、そもそも無意味だろ
元のビットが残っていない。
全部のビットが変わっている!
意味があるのは、63bit まで
元のビットが残っていない。
全部のビットが変わっている!
意味があるのは、63bit まで
340デフォルトの名無しさん
2018/03/09(金) 22:22:53.87 >>339
0になってくれれば余計な分岐やら演算やらを省けるかもしれないだろ
0になってくれれば余計な分岐やら演算やらを省けるかもしれないだろ
341デフォルトの名無しさん (ワッチョイ be81-6YPG)
2018/03/09(金) 22:57:22.97ID:dpc+cSNT0 0クリアする最適な方法なの?
342デフォルトの名無しさん (ワッチョイ 6a80-csLy)
2018/03/09(金) 23:23:40.83ID:ysNVe5/v0 1010 XOR
1010
----
0000
n は任意のビットで、n XOR n で、全ビット0にできる
1010
----
0000
n は任意のビットで、n XOR n で、全ビット0にできる
343デフォルトの名無しさん
2018/03/09(金) 23:25:22.45 >>342
そんなん全ビット読まなきゃいけないじゃん
そんなん全ビット読まなきゃいけないじゃん
344デフォルトの名無しさん (ワッチョイ cf8a-GEnZ)
2018/03/09(金) 23:29:26.36ID:9IZd/e860 n and 030 とかで任意ビットのonはわからないか?
345デフォルトの名無しさん (ワッチョイ 4a5d-uQtz)
2018/03/09(金) 23:47:39.35ID:U4YZHGfl0 >0クリア
つ ゼロレジスタ
つ ゼロレジスタ
346デフォルトの名無しさん (ワッチョイ 0b9f-uQtz)
2018/03/10(土) 00:03:47.54ID:a2p+alti0 1 bit づつじわじわシフトするなら何とかなるんだけどな。
https://paiza.io/projects/D9KFwMa77ifp6AOgAaO2PQ
https://paiza.io/projects/D9KFwMa77ifp6AOgAaO2PQ
347デフォルトの名無しさん (ワッチョイ fb04-Osi7)
2018/03/10(土) 05:55:47.17ID:jel/5KgH0 定数リテラルにullって使ってなくてもだいじょうぶなんだっけ?
348デフォルトの名無しさん (ワッチョイ 3fac-3aOH)
2018/03/10(土) 12:12:18.84ID:Z1L9sOVC0 >>343
xor は少サイクルなのが利点ですね。
xor は少サイクルなのが利点ですね。
349デフォルトの名無しさん (ワッチョイ 7361-0aB1)
2018/03/10(土) 13:08:59.94ID:qojMr6PP0 アセンブリコードの0にする方法はxorやのう
350デフォルトの名無しさん (ワッチョイ 1780-7yGo)
2018/03/10(土) 13:24:16.81ID:+HpaswK40 CPU依存すぎる
351デフォルトの名無しさん (ワッチョイ 6ab3-3fsH)
2018/03/10(土) 13:47:45.54ID:f+B2oLbA0 Z80時代の爺だろ、放置してやれ
352デフォルトの名無しさん (ワッチョイ be81-6YPG)
2018/03/10(土) 14:18:47.85ID:J/EnQN8G0 パチンコ屋さん
353デフォルトの名無しさん (ワッチョイ 6baa-Y2nf)
2018/03/10(土) 15:25:43.76ID:ps/htySn0 今じゃ乗除演算さえワンサイクルの時代に何アホな話してんだ?
354デフォルトの名無しさん (アウアウカー Sa7b-joIP)
2018/03/10(土) 16:20:41.72ID:HvD6qwC3a アセンブラについてはどうしても自分でアセンブリ言語で書かねばならない事態に陥らない限り書くことはないだろうなあ。
>>354
そうそう、printf デバッグでは力不足でもう否が応でも gdb に行くのを逃げ回っているのと同じです
そうそう、printf デバッグでは力不足でもう否が応でも gdb に行くのを逃げ回っているのと同じです
■ このスレッドは過去ログ倉庫に格納されています
