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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

5回答

1704閲覧

ruby -1 % 12 の余りが11になるというのが理解できません教えてください

koma_05

総合スコア11

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

1グッド

2クリップ

投稿2020/11/23 05:29

タイトルの通り -1 % 12の余りが11になるというのが理解できません。
計算式を教えていただきたいです。

DrqYuto👍を押しています

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

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

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

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

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

guest

回答5

0

割られる数が負の値の場合の剰余(余り)の決め方は複数あります。各プログラミング言語は、そのうちのどれかを選択して、その言語における定義(約束)として使います。

もし、余りの値を、「0以上、かつ割る数未満」の正の整数と約束した場合には、

-1 = 12 × (-1) + 11

という等式から、11が余りになります。

投稿2020/11/23 12:21

Daregada

総合スコア11990

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

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

0

理解するものではありません。約束です。

投稿2020/11/23 06:05

maisumakun

総合スコア145121

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

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

0

ベストアンサー

これは、「割り切れない数で、整数除算を行った場合、どちらの整数に丸めるか」ということと絡んでいます。
Rubyは、負の無限大方向に丸めます(Float#floorを行ったのと同じ)。
そのため、-1 / 12は、-1になります。剰余は被除数=整数商*除数+剰余から、-1=(-1)*12+剰余11となります。

同じく、1 % -12であれば、これも整数商は-1で、1=(-1)*(-12)+剰余から、剰余は-11となります。

整数除算をゼロ方向に丸める言語であれば、-1 / 12の整数商は0となり、-1=0*12+剰余から、剰余は-1となるでしょう。Cはそうですね。

投稿2020/11/23 12:24

otn

総合スコア84423

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

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

0

負数の剰余って色々有るようです。ここが参考になるかと

投稿2020/11/23 05:41

winterboum

総合スコア23284

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

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

0

私も理解できないです????

投稿2020/11/24 06:30

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問