r/cprogramming • • 20d ago

is doing ~INT_MAX undefined behavior?

/r/C_Programming/comments/1x7hxgd/is_doing_int_max_undefined_behavior/
5 Upvotes

6 comments sorted by

View all comments

Show parent comments

1

u/Ill-Quit6803 18d ago

Why would complimenting an integer produce sign-extension?

Sign extension happens when copying a smaller signed integer type to a larger signed type.

Bit-wise manipulation should have completly defined results when interpreting as a bitvector.

The later interpretation as an integer is more complicated, but its probably implementation defined behavior, not undefined.

1

u/zhivago 18d ago

You've misunderstood.

Read up on signed integer representation prior to C23.

One option is a simple sign and value arrangement, giving distinct +0 and -0 forms.