From: Yasuhiro Fukuma Date: 2000-06-09T01:56:19+09:00 Subject: [ruby-dev:9989] Re: % in C 福間@福岡 です。 記事 <200006081625.BAA05749@hanare00.math.sci.hokudai.ac.jp> にて、 gotoken@math.sci.hokudai.ac.jp (GOTO Kentaro) さんは書きました: > C言語では % 演算子が負のオペランドについてどう振る舞うべきか > は決まっていますか?? 現状では、rb_fix_modulo() が % を使って > いるので、もしCの % が処理系依存ならRubyもそれを引き継いでい > ることになると思いました。 JIS X 3010-1993, 6.3.5 (乗除演算子) より引用: 整数同士の除算で割り切れない場合, (中略) 一方のオペランドが負の値を もつ場合, / 演算子の結果が代数的な商以下の最大の整数とするか, 又は 代数的な商以上の最小の整数とするかは, 処理系定義とし, % 演算子の結果の 符号も処理系定義とする。商 a/b が表現できる場合, 式 (a/b)*b+a%b は, a に等しくなければならない。 --- FUKUMA Yasuhiro (福間 康弘) as Yasu.F @ Kitakyushu.Fukuoka.Japan Web site: http://www.bsdclub.org/~yasuf/ PGP fingerprint = 17 25 8A F3 99 E5 7E 19 C0 EA 6E 03 8A C3 CE F0 “いちばん苦手な言語は、日本語です。”