Computerarithmetiek

Wat is in C het resultaat van het aftrekken van 1 van 0 bij een niet-ondertekend 32-bits geheel getal (unsigned int)?

  1. A−1
  2. B4294967295
  3. CHet blijft 0
Antwoord en toelichting tonen

Antwoord: B. 4294967295

Niet-ondertekende gehele getallen kennen geen negatieve getallen en in C is vastgelegd dat het resultaat modulo 2³² wordt behandeld (wrap-around). 0 − 1 is 2³² − 1 = 4294967295 en het bitpatroon bestaat uit alleen enen. Daarom wordt een lus die i telkens met 1 verlaagt tot i 0 is, met een niet-ondertekende variabele en de voorwaarde i >= 0, altijd waar en eindigt nooit. −1 kan niet bij niet-ondertekende getallen worden weergegeven, en het resultaat blijft niet bij 0 staan (verzadigt niet).

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Computerarithmetiek

  1. Hoe wordt bij de optelling van niet-ondertekende gehele getallen vastgesteld dat het resultaat buiten het weer te geven bereik valt (overflow)?
  2. Welke uitspraak over de afstand tussen naburige weer te geven waarden van drijvendekommagetallen is juist?
  3. Wat is de bovengrens, beginnend bij 0, tot waar alle gehele getallen exact kunnen worden weergegeven in een IEEE 754-drijvendekommagetal met enkele precisie?
  4. Wat is de belangrijkste reden dat bedragen vaak worden verwerkt als gehele getallen met de kleinste eenheid (1 yen of 1 cent) als 1, in plaats van als binaire drijvendekommagetallen?
  5. Wat is de belangrijkste reden dat bij AI-training met gemengde precisie het grootste deel van de berekeningen in FP16 of bfloat16 gebeurt, terwijl de oorspronkelijke waarde van de gewichten (master weights) in FP32 wordt bewaard?