今天刚刚做杭电acm steps的时候遇到个小问题,自己开始对int类型的取值范围不太懂,用0xffffffff来试验也不对,然后问同学才更加深入的明白了一点
百度上说:
“C++ & C int为一种数据类型,范围[-2^31 , 2^31 -1] 即 [-2147483648,2147483647]。 ”
但是这个int能表示的最大的数要怎么才能表示出来? 我开始用0xffffffff表示,但是每次
printf("%d",0xffffffff);
得到的结果总是-1,让我很蛋疼。
我这脑子也没太思考,知道0xffffffff 是32个1组成的,第一位是符号位,表示正负,0xffffffff表示了int型能够表示的最大数。
但是我现在还没有搞明白 “printf("%d",0xffffffff); 这条语句,0xffffffff是原码还是补码? ”