avik26091998's blog

By avik26091998, history, 7 years ago, In English

Why do unsigned integers wrap without extensively using the modulo operator in c++?? Suppose , Unsigned int a , b; a and b both are 2^32-1. Then what will be the value of a+b?

so if they don't overflow how can we make them overflow??

  • Vote: I like it
  • -11
  • Vote: I do not like it

| Write comment?
»
7 years ago, # |
  Vote: I like it +11 Vote: I do not like it

why not run it yourself to find out? this seems to be easily tested out right?

  • »
    »
    7 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Yeah..i ran it i did'nt understand.. .please if you know help..

    • »
      »
      »
      7 years ago, # ^ |
        Vote: I like it +8 Vote: I do not like it

      what do you actually mean by overflow? For what happen with a+b, the value stored in a and b cannot be greater than 2^32-1, so it will just store the modulo of 2^32. read this

    • »
      »
      »
      7 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      for your updated question, it will be 4294967294 which is 2^32-2.as 2^32-1+2^32-1 = 2*(2^32) — 2 = -2 (mod 2^32)

  • »
    »
    7 years ago, # ^ |
      Vote: I like it +8 Vote: I do not like it

    Note that some languages (C and C++ are the most notable examples) include the notion of "undefined behavior", meaning that an experiment can be ill-defined and one cannot draw any conclusions from it.

    • »
      »
      »
      7 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Note that some languages (C and C++ are the most notable examples) include the notion of "undefined behavior"

      Not for overflowing unsigned integers, though. If he knew about undefined behavior (I doubt it) but didn't know whether unsigned integer overflow was considered such, then google is a friend of his.