Keresés

Hirdetés

!! SZERVERLEÁLLÁS, ADATVESZTÉS INFORMÁCIÓK !!
Köszönjük a sok biztatást, támogatást! Egy rövid ideig még féláron tudsz hirdetni, előfizetni!

Új hozzászólás Aktív témák

  • caddie

    csendes tag

    válasz orbano #2731 üzenetére

    En nem tudom, hogy pontosan ezt honnan vetted, sajnos explicit nem tudom megcafolni, de azert:

    A C++ integerek kozotti osztas eseteben a FORTRAN standard-et (ISO/IEC 1539:1991) veszi alapul §7.2.1.1.


    13
    One operand of type integer may be divided by another operand of type integer. Although the math

    14
    ematical quotient of two integers is not necessarily an integer, Table 7.1 specifies that an expression

    15
    involving the division operator with two operands of type integer is interpreted as an expression of type

    16
    integer. The result of such an operation is the integer closest to the mathematical quotient and between

    17
    zero and the mathematical quotient inclusively.


    Azaz nulla fele kerekit.


    1, a) Ezek a muveletek (egeszosztas) olyan alacsonyszintu dolgok, hogy gyk. nem a C++ nyelvi szintjen, hanem ASM / binaris szinten oldodnak fel. Ha jol tudom, kulon ASM utasitas is van egeszek kozotti osztasra.

    1, b) Ha jobban belegondol az ember ez min. 2 temporalis objektumot jelentene, 1 kene a lebegopontos szamnak egy masik pedig a kerekitett egesznek. Gyk. kizartnak tartom, hogy ez igy mukodne, sokkal valoszinubb, hogy bit szinten szorodik ki az egesz reszen kivuli maradek. (Persze ez most egy egyszerusitett gondolatmenet volt, de akar azt is mondhatom, hogy mindket operandusbol csinalunk lebegopontosat (2 temporalis), majd ebbol lesz egy lebegopontos (+1 temp), majd ebbol keszitunk egesz tipusut (eredmeny)).


    2, Had tamasszam ala egy masik oldalrol is:

    2, a) TFH ket integernek veszed a hanyadosat, majd az eredmenyt egy harmadik inicializalasara hasznalod. Ekkor - teljesen - feleslegesen egy lebegopontos temporalis objektum is letrejon. Nehezen hiszem, hogy ilyen alacsonszinten nagyon engedek a temporalis objektumok elburjanzasat.

    2, b) A viccesebb az az eset, amikor az eredmenyt egy lebegopontos szamnak adod at, ekkor ugyanis a ket egeszbol keszul egy lebegopontos -> egesz -> majd ismet egy lebegopontos, hisz olyat inicializalsz az eredmennyel!

    2, c) Nyilvan sokkal logikusabb lenne, ha a konverziot elhalasztanank addig a pontig, amig ki nem derul milyen tipusba akarjuk az eredmenyt beletenni, a masodik peldanal pl. egy lebegopontos -> egesz -> lebegopontos konverziosorozatot siman megoldhatnank. De persze nem igy van, de ha mar az altalad elmodottak tortennenek, akkor igy lenne logikusabb.


    3, a) Harmadik dolog pedig az, hogy ha ugy lenne ahogy mondod, akkor leteznie kellene C++-ban egy lebegopontosrol -> egeszre iranyulo implicit konverzionak, ami pedig nincs. (Lasd 2, b) pontban - leirasodat alapul veve - egy ilyen konverzio soran alakul ki a vegeredmeny, amely egesz.)

    Konkluzio: Semmilyen implicit konverzio nem tortenik, egeszen addig ameddig az egyik operandus tipusa nem lebegopontos. Akkor is egy konverzio tortenik, az egesz operandus konvertalodik lebegopontossa, innetol kezdve pedig lebegopontos szamok kozotti osztasrol beszelunk, amely mar egy teljesen mas vilag... meg csak egy gondolat erejeig sem merek abba belemenni.

    [Szerkesztve]

Új hozzászólás Aktív témák