Does this depend on the C++ version, OS, and/or system architecture? Does long, long long, int, short, and even custom integer types from all/most packages, use the same sign system?
I am learning about shifting, masking, and other forms of bit-manipulation, so this will help.