Az adatbitek számát - verem túlcsordulás az orosz

Szia, ezt a kérdést.

Meg kell számolni a adatbitek beleértve a típus int (java). Az egyik megoldás, például, van egy eljárás (egy cikket, ugyanazon a helyszínen kb bitenkénti műveletek):

Itt egyértelmű: ellenőrizzük a legkisebb helyi értékű bit és bit-1 és a jobb az eltolódás után bit nulla töltés, végül eléri a nullát, és megszerezni a számát 1 bit.

És a cikk továbbá a még jobb megoldás, nem tudom megérteni, hogy ugyanazon a helyen:

Meg van írva: „Ehhez tartjuk a kifejezés a számát (n - 1) Ez a szám különbözik n, hogy ahelyett, hogy az utolsó kis pénze 0 és minden ezt követő bit 1.”.

Tulajdonképpen ott nem lehet megérteni. Nos n = 5 vagy n = 0b101 és n-4 = 1 vagy n-1 = 0b100, azaz 101 és 100.

Nem látok egy idézet „eltér n, hogy ahelyett, hogy az utolsó kis pénz, amit 0, és minden ezt követő bit egyenlő 1”. A legkisebb bit értéke 0 négy, de a következők is 0, és nem 1.

Valahol tuplyu, de nem értem, hogyan n = n (N - 1) működik. A kifejezést száma ++ nyilvánvaló, hogy mindegyik ismétlésnél mi garantáltan kap az egység száma bit.

Mondd, mi a lényege, és elnézést a falon szöveget.

Ez utóbbiról tudott a művelet Az is érthető, de még általában nem a végéig. Jobb műszak, és hasonlítsa össze az LSB 1 fej látszólag érzékelt. Kiderült, hogy a (n-1) jelentése ugyanaz, mint N, de az utóbbi egy egyetlen bit értéke 0, és mivel a műtét után Ebben az esetben - a 0 a száma (n-1) és egy egyetlen bit n mindig 0, durván azt tetrád mindegyik ismétlésnél egy egyetlen bit (amely az utolsó a n száma helyettesítve azt 0, amíg ez volt minden 0) . Jól értettem) -? DMDS október 28 '14 at 20:53

Kapcsolódó cikkek