[過去ログ] C言語なら俺に聞け 163 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
372(1): (ワッチョイ ffd6-G09H) 2024/11/25(月)07:22 ID:NtppUMW10(1/2) AAS
6.3.1.3のこれじゃないの
Otherwise, if the new type is unsigned, the value is converted by repeatedly adding or
subtracting one more than the maximum value that can be represented in the new type
until the value is in the range of the new type.
373(1): (ワッチョイ bf5f-FO3g) 2024/11/25(月)08:27 ID:qsrJNZhH0(1) AAS
6.3.1.3
符号付き整数型及び符号無し整数型 整数型の値を̲Bool型以外の他の整数型に変換する場合,
その値が新しい型で表現可能なとき,値は変化しない。
新しい型で表現できない場合,新しい型が符号無し整数型であれば,新しい型で表現しうる最大の数に
1加えた数を加えること又は減じることを,新しい型の範囲に入るまで繰り返すことによって得られる値
に変換する(49)。
なるほど,1がintで<<31すると負の最大値となって,unsignedとして表せないからか.
皆様,ありがとうございました.
374: はちみつ餃子◆8X2XSCHEME (ワッチョイ f732-hCSs) 2024/11/25(月)09:22 ID:EAdMpn4b0(2/2) AAS
>>372-373
いいえ。
シフト演算の段階で既に未定義を踏んでいるので型変換は関係ないです。
6.5.7 をご覧ください。
375: (ワッチョイ 9fc2-ZGYG) 2024/11/25(月)09:32 ID:SsaYg1Am0(1) AAS
科学 + ンニュース 5ch
保守派もリベラル派も「自分の政治的信念に合致したニュース」を信じやすいという研究結果 [すらいむ★]
2chスレ:scienceplus
コメントも含めて読むと
陰謀論が収まら無い理由が判明する
376: (ワッチョイ ffd6-G09H) 2024/11/25(月)09:46 ID:NtppUMW10(2/2) AAS
なるほど、32bitのみでやるときも1u<<31にしないといけないのか
377: (ササクッテロ Spcb-8bf6) 2024/11/25(月)10:29 ID:G+C3M6QHp(1) AAS
なぜ浮動小数型をシフトしようとした?
378: (ワッチョイ bfdf-FO3g) 2024/11/25(月)13:39 ID:YjGMGS1I0(1) AAS
>> 374 なるほど,そっちで既に未定義だったか.
6.5.7
ビット単位のシフト演算子
構文規則
シフト式:
加減式
シフト式 << 加減式
シフト式 >> 加減式
制約 各オペランドは,整数型をもたなければならない。
意味規則 整数拡張を各オペランドに適用する。結果の型は,左オペランドを拡張した後の型とする。右オペランドの値が負であるか,又は拡張した左オペランドの幅以上の場合,その動作は,未定義とする。
E1<<E2の結果は,E1をE2ビット分左にシフトした値とする。空いたビットには0を詰める。E1が符号無し整数型をもつ場合,結果の値は,E1×2E2の,結果の型で表現可能な最大値より1大きい値を法と
する剰余とする。E1が符号付き整数型と非負の値をもち,E1×2E2が結果の型で表現可能である場合,それが結果の値となる。それ以外の場合,その動作は未定義とする。
E1>>E2の結果は,E1をE2ビット分右にシフトした値とする。E1が符号無し整数型をもつ場合,又はE1が符号付き整数型と非負の値をもつ場合,結果の値は,E1/2E2の商の整数部分とする。E1が符号付き整数型と負の値をもつ場合,結果の値は処理系定義とする。
379: (JP 0Hdf-6m00) 2024/11/26(火)22:12 ID:JxXv+doZH(1) AAS
VS CodeでEchoAPIを使うと、ツールを切り替えずにAPIテストをシームレスに管理できるようになったよ!
380: (ワッチョイ d761-7ouQ) 2024/11/29(金)15:48 ID:QX01Nly20(1) AAS
以下のサンプルプログラムが理解できず困っています。
該当プログラムは、コマンドラインから読み込んだBMPの色データを矩形として並べていくというものの一部を抜粋しています。
以下のfor文は
カラーテーブルの数を取得する→
ブラシを設定する→
先頭の構造体メンバからiCount先の構造体メンバを指定→
iCountにインクリメント
という流れだと考えられると思うのですが、1に対し1カラービット分左シフトとなっている部分がどういったロジックによって数の取得が実現されているのかわかりません。
質問は2点あり、どのようにしてテーブル数を取得しているのか、コードの理解は正しいのかについてお答えしていただければと思います。
サンプルコード
#include <windows.h>
BITMAPFILEHEADER bmpFileHeader;
BITMAPCOREHEADER bmpCoreHeader;
RGBTRIPLE *prtColor;
for ( ; iCount < (1 << bmpCoreHeader.bcBitCount) ; iCount++) {
SelectObject(hdc , CreateSolidBrush(
RGB( (prtColor + iCount)->rgbtRed ,
(prtColor + iCount)->rgbtGreen ,
(prtColor + iCount)->rgbtBlue
))
381(1): (スプッッ Sd3f-G09H) 2024/11/29(金)16:12 ID:YWo8X0edd(1) AAS
bcBitCountはピクセルあたりビット数で1,4,8,24だそう
nビットで表せる値は2^n通りで、これは左シフト1<<nで計算できる
382(1): (ワッチョイ ff76-J7R8) 2024/11/29(金)23:08 ID:5pZynS2U0(1) AAS
# 質問されていない部分だけど…
iCountと比較する値はループ内で変動しないよね?
だったら毎回計算せずにループ前で計算して別変数に記憶しておくほうがよくないかい?
383: (ワッチョイ ffd6-G09H) 2024/11/30(土)00:28 ID:b6kb1MmL0(1) AAS
今時のコンパイラは十分賢いので気にすることない
384: (ワッチョイ ff63-cdGy) 2024/11/30(土)00:37 ID:VtvuoLT+0(1/5) AAS
ユーザーの犯したバグも直してくれるとありがたいなあ
385(1): (ワッチョイ ff76-J7R8) 2024/11/30(土)00:47 ID:k7UOR52k0(1/8) AAS
シフトでも掛算でもどっちでもいいけど
質問者のように読んで悩むのは問題
コメント書いておけ
ループ内毎回計算か最適化でループ外に出したかは
コンパイル後の逆アセンブルとかで確認するの?
だったら間違いないようにループ外に出す方が良い癖にもなると思うのだが
386(1): (ワッチョイ bf79-q0Tp) 2024/11/30(土)09:43 ID:54hbVEvk0(1/5) AAS
380の知能では最適化したつもりが新たなバグを埋め込む事になるかもしれん
自身の身の丈に合ったコードにしとけ
未来の自分が賢くなってる事を信じて
387(1): (アウアウエー Sadf-wjfe) 2024/11/30(土)09:49 ID:l0dFcapba(1) AAS
#include <windows.h>
BITMAPFILEHEADER bmpFileHeader;
BITMAPCOREHEADER bmpCoreHeader;
RGBTRIPLE *prtColor;
↑
この間に何も描かれてないのは投稿者が勝手に削除したの?元から無いの?
↓
for ( ; iCount < (1 << bmpCoreHeader.bcBitCount) ; iCount++) {
SelectObject(hdc , CreateSolidBrush(
RGB( (prtColor + iCount)->rgbtRed ,
(prtColor + iCount)->rgbtGreen ,
(prtColor + iCount)->rgbtBlue
))
388: (ワッチョイ ff76-J7R8) 2024/11/30(土)11:23 ID:k7UOR52k0(2/8) AAS
なんでこんなに読めないのか理由がわかった
変数名や字下げや「,」前のブランクなど
論理そのもの以前にコーディングの美しさが全然無い
389: (ワッチョイ ff63-cdGy) 2024/11/30(土)11:53 ID:VtvuoLT+0(2/5) AAS
この掲示板書き込むと、スペースやタブは消されちゃうんだよな。
だから綺麗に整形した状態でソース載せたいなら、
全角スペース使うしかない。
あるいはソース公開出来るサイトにアップロードして、
そのリンクを張るなりする。
そういうサイトは、>>1 に書いてある。
390: (ワッチョイ bfd9-6oxW) 2024/11/30(土)12:18 ID:tlb45efI0(1) AAS
美しさとか言い出したら自転車置き場の議論なるからやめとけ
391: (ワッチョイ ff63-cdGy) 2024/11/30(土)12:21 ID:VtvuoLT+0(3/5) AAS
2chスレ:tech
色々試し書きしたいなら、テストスレがあるから、そこでやって
392: (ワッチョイ ff76-J7R8) 2024/11/30(土)15:56 ID:k7UOR52k0(3/8) AAS
python自体のスタイルPEP8に加えてCについてのPEP7も整備されているのに
外部リンク:peps.python.org
あえてそれに背くコーディングをする理由が見つからない
GNUのへんてこコーディングも規約文章は整備されている
393: (ワッチョイ bf79-q0Tp) 2024/11/30(土)16:28 ID:54hbVEvk0(2/5) AAS
他人のふんどしででかい顔のpythonは存在自体がきしょくってぇ
そんなもん使ってる奴の押し付けに従う気にはとてもなれないって感じぃ
394: はちみつ餃子◆8X2XSCHEME (ワッチョイ f732-hCSs) 2024/11/30(土)16:41 ID:VBYh6hCP0(1/2) AAS
自分の使ってるテキストエディタにコピペして整形を実行したら一瞬でどうとでもなるんだからどうでもいいだろ。
395(1): (ワッチョイ ff76-J7R8) 2024/11/30(土)17:05 ID:k7UOR52k0(4/8) AAS
func(a , b , c );
func(a, b, c);
上から下への変換はインデントとは異なりやっかい
396: はちみつ餃子◆8X2XSCHEME (ワッチョイ f732-hCSs) 2024/11/30(土)17:22 ID:VBYh6hCP0(2/2) AAS
>>395
どんな古臭いフォーマッタを使ってるんだ?
397: (ワッチョイ d761-7ouQ) 2024/11/30(土)17:25 ID:9y3I76FS0(1/2) AAS
>>381
シフト演算を行った場合、10進数の1に対して乗算を行うわけではなく、2進数に対して行うという認識で良いでしょうか?
すなわち、この場合を10進数で表すと、1ではなくて2に対して、1,4,8,24、のいずれかを冪乗し、何通りの色の組み合わせがあるのかを確かめることができるというわけですね。
>>382
コピペしただけなのでとりあえず理解をと思い書き込みました。自身で書くときはそうしたほうがわかりやすいかもしれませんね。
398: (ワッチョイ d761-7ouQ) 2024/11/30(土)17:25 ID:9y3I76FS0(2/2) AAS
>>385
少し別添えで記述されてはいたのですが、それだけでは理解に至らなく書き込みした次第です。
>>386
そうなんです、私も身の丈に合うコードにしたいのは山々なのです。
ところで、初級者向けのGUI作成の手引書を教えていだだけませんか?もちろん、ここ5年以内の環境で
>>387
勝手ながら削除しています。素人考えなのは承知です。
仕事柄、利権や法にはうるさくあらねばなりませんので、リスク回避です。
399: (ワッチョイ bf79-q0Tp) 2024/11/30(土)18:05 ID:54hbVEvk0(3/5) AAS
Cは知っといた方がいいけど
GUIをやりたいならこのスレに居るのは時間の無駄なんだが
そのBITMAPなんちゃらも以下の環境では気にしなくていい
GUI開発おすすめ言語
iOS macOSアプリ Swift、Objective-C
Androidアプリ Kotlin、Java
Webアプリ Kotlin、Java
Windows C#
なおWeb系はHTML/CSS、JavaScript/TypeScriptは必須と思って頂きたい
400: (ワッチョイ ff63-cdGy) 2024/11/30(土)18:12 ID:VtvuoLT+0(4/5) AAS
Windowsの内部構造を知るのは時間の無駄なのか
401: (ワッチョイ bf79-q0Tp) 2024/11/30(土)18:17 ID:54hbVEvk0(4/5) AAS
BITMAPなんちゃらに詳しくなった所でWindowsの内部構造を知ったことにはならないんだがぁ?
現行Windows11の内部構造なんてきしょすぎてそもそも知りたくもないわ
上下前次1-新書関写板覧索設栞歴
あと 601 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.021s