Our Exercise code is outputting an unexpected -1 and we dont know why : So we are working on an exercise for Uni and we cant figure out why this code outputs the second value as -1
We believe that it is due to the 16-bit limit but don't understand exactly why and can't find any sources on this issue since we dont know what it actually is. I'm sorry if this seems really stupid, pls help D:

    #include <stdio.h>
    #include <stdint.h>
    
    int main() {
      int16_t y = 1024, z = 65; // auch "short" als Datentyp verwendbar
    
      y = y * z;
      printf("1. Ausgabe: %d\n", y);
      printf("2. Ausgabe: %d\n", y / 3 * 3 - 3 * y / 3);
      printf("\n");
    
      return 0;
    }


we expected the result to be 0 for  2. Ausgabe but it outputs  -1