C语言中的数据类型主要有以下几种:
整型(int):用于表示整数,占用4个字节(32位),范围为-2147483648到2147483647。
长整型(long int):用于表示较大的整数,占用8个字节(64位),范围为-9223372036854775808到9223372036854775807。
短整型(short int):用于表示较小的整数,占用2个字节(16位),范围为-32768到32767。
无符号整型(unsigned int):用于表示非负整数,占用4个字节(32位),范围为0到4294967295。
浮点型(float):用于表示浮点数,占用4个字节(32位),精度为6~7位小数。
双精度型(double):用于表示精度更高的浮点数,占用8个字节(64位),精度为15~16位小数。
字符型(char):用于表示单个字符,占用1个字节(8位),范围为-128到127或0到255。
位运算是针对二进制位进行操作的运算。C语言中主要有以下位运算符:
&:按位与,两个二进制数对应位上都是1时,结果为1,否则为0。
|:按位或,两个二进制数对应位上有任意一个是1时,结果为1,否则为0。
^:按位异或,两个二进制数对应位上不同的时候,结果为1,否则为0。
~:按位取反,将二进制数每一位上的值取反。
<<:左移运算符,将二进制数向左移动指定位数,低位补零。
:右移运算符,将二进制数向右移动指定位数,高位补零或补符号位(正数高位补0,负数高位补1)。
例如:
unsigned int a = 0b01010101; // 85
unsigned int b = 0b10101010; // 170
unsigned int c = a & b; // 0b00000000,结果为0
unsigned int d = a | b; // 0b11111111,结果为255
unsigned int e = a ^ b; // 0b11111111,结果为255
unsigned int f = ~a; // 0b10101010,结果为170
unsigned int g = a << 2; // 0b0101010100,结果为340
unsigned int h = b >> 3; // 0b00010101,结果为21
c
以上是C语言中的数据类型及位运算的介绍,希望对你有帮助。