一、基础知识
1、int是C++中用于表示整数的数据类型之一。 2、int在内存中占据4个字节,范围为-2147483648~2147483647。 3、可以用sizeof()函数来求int类型在不同编译器下占用的字节数,例如:sizeof(int)。 4、int类型可以被赋予任何整数值,包括十进制、八进制和十六进制数字,例如:int a=10, b=012, c=0xA。 5、如果要输出int类型的值,可以使用cout<<或printf()函数进行输出。
#include<iostream>
using namespace std;
int main(){
int a=12, b=045, c=0xC;
printf("%d %d %d", a, b, c);
return 0;
}
二、进制转换
1、C++中的int类型能够表示不同进制的整数,并且可以在进制之间进行转换。 2、将二进制、八进制和十六进制数字转换成十进制数字可以使用atoi()函数或sscanf()函数,例如:int a=atoi("1010")或sscanf("0xC", "%d", &a)。 3、将十进制数字转换成二进制、八进制和十六进制数字可以使用itoa()函数或sprintf()函数,例如:char binary[33]; itoa(10, binary, 2)或sprintf(binary, "%b", 10)。
#include<iostream>
#include <cstdlib>
using namespace std;
int main(){
int a=atoi("1010");
cout << a << endl;
char binary[33];
itoa(10, binary, 2);
cout << binary << endl;
return 0;
}
三、运算操作
1、int类型可以进行基本的算术运算操作,包括加减乘除和取模操作。 2、int类型也支持一些特殊的运算操作,比如按位与&、按位或|、按位异或^、按位取反~、左移<<和右移>>。 3、需要注意的是,在进行右移操作时,如果进行的是算术右移,则最高位(符号位)会被保留;如果进行的是逻辑右移,则最高位会被清零。
#include <iostream>
using namespace std;
int main(){
int a=6, b=3;
cout << a+b << " " << a-b << " " << a*b << " " << a%b << endl;
cout << (a&b) << " " << (a|b) << " " << (a^b) << " " << (~a) << endl;
cout << (a<<1) << " " << (a>>1) << endl;
return 0;
}
四、类型转换
1、在C++中,int类型可以和其他数据类型之间进行自动或强制类型转换。 2、在进行自动类型转换时,整数类型之间的转换通常是安全的,但是浮点数类型之间的转换需要注意精度问题。 3、在进行强制类型转换时,可以使用强制类型转换符(static_cast、dynamic_cast、const_cast、reinterpret_cast)来实现。
#include <iostream>
using namespace std;
int main(){
int a=6;
double b=3.5;
cout << (a/b) << endl;
int c = static_cast<int>(b);
cout << c << endl;
return 0;
}
五、进位与溢出
1、在进行加法和乘法操作时,int类型可能会出现进位和溢出的情况。 2、当两个int类型的值相加结果超过了int类型的范围时,会发生溢出,结果会变成负值。 3、当两个int类型的值相乘结果超过了int类型的范围时,会发生进位,结果会截取高32位。
#include <iostream>
using namespace std;
int main(){
int a=2147483647, b=2;
cout << (a+b) << endl;
cout << (a*b) << endl;
return 0;
}