• there’s integer overflow and integer underflow. when you have an 8-bit signed integer variable: signed char x = 127 and you try to increment it by 1: signed char y = x + 1 and then you print y: `printf(“%d\n”, int(y))", it will print -128. the reason is integer overflow, kinda like when you add 1 to 999, you get 1000. but if the variable can only store 3 digits, you get 000 instead, which is 0. the computer interprets that as a negative value though because of offset etc.

    the same works in reverse. -999 - 1 = -1000 which gets interpreted as -000 which gets interpreted as a positive number then.

    • Avicenna ( Avicenna@programming.dev ) 
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 month ago

      Hah for some reason I thought it was arithmetic underflow but given that the original joke was integer overflow and not arithmetic overflow it makes more sense for it to be integer underflow too. And I agree fits better.