/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
negativ dividend
Fra : Troels Thomsen


Dato : 13-04-04 13:28

Hej,

Hvordan var det at -7/2 kunne give -4 ? (istedet for -3)
(fra tråden lige/ulige)

Er det bare sådan at der ikke var helt enighed om hvordan det skulle laves,
og derfor blev begge ting tilladt i standarden?
(indtil C99 hvor det skal give -3 iflg tråden, og dermed blev modulus vædien
også lagt fast)

Er det måske fordi der findes nogle hardware divisorer der fungerer således,
og så vil man ikke tvinge compileren til at generere kode til at justere
resultatet af divisionen før der evt regnes videre på det i c koden?

mvh Troels



 
 
Mogens Hansen (13-04-2004)
Kommentar
Fra : Mogens Hansen


Dato : 13-04-04 17:49

Troels Thomsen wrote:

[8<8<8<]
> Er det måske fordi der findes nogle hardware divisorer der fungerer således,
> og så vil man ikke tvinge compileren til at generere kode til at justere
> resultatet af divisionen før der evt regnes videre på det i c koden?

Ja.
Det stemmer med beskrivelsen i ARM *) side 72 og med beskrivelsen i
"Rationale for Internation Standard - Programming Languages - C,
Revision 2" af hvorfor det var sådan i C89 og at overheaded for at gøre
det mere velspecificeret syntes acceptabelt.

Venlig hilsen

Mogens Hansen


*)
The Annotated C++ Reference Manual
Margaret A. Ellis, Bjarne Stroustrup
ISBN 0-201-51459-1


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste