3 ms·
That goes against my intuition. Multiplication in hardware to this day relies on addition. Is one adder going to add an extra cycle? Or would that time be amort
by copperx 4y ago
That goes against my intuition. Multiplication in hardware to this day relies on addition. Is one adder going to add an extra cycle? Or would that time be amortized? Take a look at slides 45-46 here. https://acg.cis.upenn.edu/milom/cis371-Spring08/lectures/04_integer.pdf https://acg.cis.upenn.edu/milom/cis371-Spring08/lectures/04_...
Do you know the answer to that question? (I don't, but if someone does, it will settle this issue).
- HarHarVeryFunny 4y agoI don't know, but looking at that 3-input add makes me think you may be right and the extra addition/subtraction could perhaps be combined into the multiplication. OTOH, for arrays who's contents are size 2^n (char, short, int, long) I'm sure the generated code isn't using multiply in the first place. Anyways, an optimizing compiler could certainly remove much of any overhead added by 1-based indexing .. for an array access in a for loop it could, if necessary, calculate the "base-1" address once at start of loop. Personally, having grown up with assembler and C, and still using C++ today, I'm quite happy with 0-based.