質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

2750閲覧

”比較可能な2つの値のうち大きい方を返す”が深く理解できません

kei1990s

総合スコア25

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2016/12/06 10:30

編集2016/12/06 10:31

func

1 audioRecorder.updateMeters() 2 let dB = audioRecorder.averagePower(forChannel: 0) 3 let atai = max(0, (dB + 77)) / 77 4 nami1.progress = atai 5 nami2.progress = atai 6 nami3.progress = atai 7 }

let atai = max(0, (dB + 77)) / 77
dBが無音時なら-160dB
最大音量時なら0dBなのですが
maxの説明を読むと
”比較可能な2つの値のうち大きい方を返します。”
とあるのですが、必ず0が大きくなると思うのですが
そうなった場合 nami1.progressなどには常に最大音量時のdBしか入らないのでは?と考えてしまいます

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/12/06 10:37

-50+77
kei1990s

2016/12/06 10:41

どういう意味でしょうか?より皆さんが回答しやすくしたいので、もし読むべき説明を読み落としていたり、参考になるサイトだけでも説明、ご指摘いただくととても嬉しいです
guest

回答1

0

ベストアンサー

必ず0が大きくなると思うのですが

なぜそう思われたのでしょうか。dBに0などが入ったときを考えてみてください。

投稿2016/12/06 10:48

maisumakun

総合スコア145123

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei1990s

2016/12/06 10:52 編集

0+77で77になるということは 0が最大なので77と0を比較するとそうなるのかなと、、、 もしこの質問をするにあたって事前にもう少し勉強するべきとこがあればご指摘いただくと嬉しい限りです そこを勉強して再度回答者様にとってより答えやすいようにしたいと思っています
maisumakun

2016/12/06 10:52

「77と0を比較して0が大きい」と考えていた、ということでしょうか。
kei1990s

2016/12/06 10:56

そうですね それで今思ったのですが 0が最大で-160が最小というなら 77はどこに位置づけされるのかなと、、、、 すいません、、、
maisumakun

2016/12/06 10:58

「dBが何を取りうるか」なんてことは、Swiftは知る由もありません。maxに与えた2つの値「0」、「dB+77」だけを考えてください。
kei1990s

2016/12/06 11:09 編集

再度 .averagePowerを読み直すと オーディオレコーダーに供給される信号が±フルスケールを超えている場合、戻り値は0を超えることがあります(つまり、正の範囲に入る可能性があります)とあるのですが ここの”正の範囲に入る”とありますが”正の範囲に入る”とつまり例えば1は0よりも大きくなるということでしょうか? 0が最大で-160が最小というなら 今の話でいくと 77は0より大きいということなのでしょうか? 「0」、「dB+77」だけを考えて解決したいのですが、、、 そこを先に教えてもらえないでしょうか?
maisumakun

2016/12/06 11:37

プログラミング言語で現れる値の中には、複素数のように大小比較ができないものもありますが、ふつうの数値はもちろん比較できます。 ということで、「比較可能な」という条件はこの場合、気にしなくて構いません。
kei1990s

2016/12/06 11:41 編集

なるほど ということは 0と77なら77の方が大きいということでいいのでしょうか? まとめると 1 > 0 > -1でいいのでしょうか?
maisumakun

2016/12/06 11:41

はい、単なる大小関係です。
kei1990s

2016/12/06 11:56

理解できました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問