タグ付けされた質問 「integer-arithmetic」

11
Bashスクリプトに数値を追加するにはどうすればよいですか?
このBashスクリプトがあり、16行目に問題がありました。15行目の以前の結果を取得して、16行目の変数に追加するにはどうすればよいですか? #!/bin/bash num=0 metab=0 for ((i=1; i<=2; i++)); do for j in `ls output-$i-*`; do echo "$j" metab=$(cat $j|grep EndBuffer|awk '{sum+=$2} END { print sum/120}') (line15) num= $num + $metab (line16) done echo "$num" done

30
インタープリター言語で非常に大きな整数を処理するときに予期しない結果が発生する
私は合計を取得しようとしています1 + 2 + ... + 1000000000が、PHPとNode.jsで面白い結果を得ています。 PHP $sum = 0; for($i = 0; $i <= 1000000000 ; $i++) { $sum += $i; } printf("%s", number_format($sum, 0, "", "")); // 500000000067108992 Node.js var sum = 0; for (i = 0; i <= 1000000000; i++) { sum += i ; } …

1
Python 3.x整数の場合、ビットシフトよりも2倍高速ですか?
私はsorted_containersのソースを見ていて、この行を見て驚いた: self._load, self._twice, self._half = load, load * 2, load >> 1 これloadは整数です。ある場所でビットシフトを使用し、別の場所で乗算を使用するのはなぜですか?2による整数除算よりもビットシフトの方が速い場合があるのは理にかなっていますが、乗算もシフトで置き換えてみませんか?私は以下のケースをベンチマークしました: (回、除算) (シフト、シフト) (回、シフト) (シフト、除算) そして#3は他の選択肢よりも一貫して速いことがわかりました: # self._load, self._twice, self._half = load, load * 2, load >> 1 import random import timeit import pandas as pd x = random.randint(10 ** 3, 10 ** 6) def test_naive(): a, b, …

13
数値が10の倍数であるか、特定の範囲のセット内であるかを判断する
プログラムに必要なループがいくつかあります。疑似コードを書き出すことはできますが、論理的にどのように書くかは完全にはわかりません。 私は欲しい - if (num is a multiple of 10) { do this } if (num is within 11-20, 31-40, 51-60, 71-80, 91-100) { do this } else { do this } //this part is for 1-10, 21-30, 41-50, 61-70, 81-90 これは、ヘビとはしごのボードゲーム用です。 モジュラスを使用する必要がある最初のifステートメントif (num == 100%10)が正しいと思いますか? 2番目はわかりません。私はそれを書き出すことができますが、それif (num > 10 …

4
符号なし整数減算は動作が定義されていますか?
結果が負になる場合に、同じ型の別の整数から符号なし整数を減算する問題があると信じているように見える誰かからコードを見つけました。したがって、このようなコードは、たまたまほとんどのアーキテクチャで機能しても、正しくありません。 unsigned int To, Tf; To = getcounter(); while (1) { Tf = getcounter(); if ((Tf-To) >= TIME_LIMIT) { break; } } これは、私が見つけたC標準からの漠然とした関連性のある唯一の引用です。 結果の符号なし整数型で表すことができない結果は、結果の型で表すことができる最大値よりも1大きい数を法として減じられるため、符号なしオペランドを伴う計算は決してオーバーフローできません。 右のオペランドが大きい場合、モジュロトランケートされた数値のコンテキストで意味がわかるように操作が調整されることを意味するために、その引用を使用できると思います。 すなわち 0x0000-0x0001 == 0x 1 0000-0x0001 == 0xFFFF 実装に依存する署名されたセマンティクスを使用するのとは対照的に: 0x0000-0x0001 ==(符号なし)(0 + -1)==(0xFFFF、ただし0xFFFEまたは0x8001) どちらの解釈が正しいですか?それはまったく定義されていますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.