快速复习C语言 - 1变量与运算符
2020-12-27 10:27
标签:size image 范围 静态类 指针 算术 算术运算 定义 存储 本篇以读者知道 float 类型注意事项 float 类型数没有办法跟一个数真正比较是否相等,可以定义借助绝对值在一定误差范围内视为相同: 用 define 定义宏函数: 定义变量语法: 1 建议型的意思是建议 gcc 分配为寄存器类型,至于是否分配为寄存器类型,由 gcc 自己做主,gcc 不会轻易把变量放入寄存器中 例如:6
(6)10 = (0110)2 向左移动三位变成 (0011 0000)2 = (48)10 左移运算,相当于 a * 2b,即 6 3 = 6 * 8 = 48 与左移相反, 例如:36 >> 2 (36)10 = (0010 0100)2 向右移动两位变成 (0000 1001)2 = (9)10 右移运算,相当于 a / 2b,即 36 >> 2 = 36 / 22 = 36 / 4 = 9 两个二进制数相同位的两个数字都为 1,则结果为 1;其中一个不为 1,则结果为 0 例如:12 & 10 (12)10 = (1100)2 (10)10 = (1010)2 结果为 (1000)2 = (8)10,即 12 & 10 = 8 与运算可以判断一个整数的奇偶,把这个整数跟 1 进行与运算,结果为 0 则该数为偶,结果为 1 则该数为奇 两个二进制数相同位的两个数字有一个为 1,则结果为1;只有两个都不为 1,结果才为 0 例如:10 | 6 (10)10 = (1010)2 (6)10 = (0110)2 结果为 (1110)2 = (14)10,即 10 | 6 = 14 相同位两数不同则为 1,否则为 0 例如:10 ^ 6 (10)10 = (1010)2 (6)10 = (0110)2 结果为 (0010)2 = (2)10,即 10 ^ 6 = 2 一个数进行两次相同的异或运算结果是它本身,由此可以通过异或运算交换两数: 分析: 第一次 第二次 第三次 将一个二进制数所有位全部取反。做此运算时需特别注意是否有符号位 例如:~ (11)10 = ~ (1011)2 = (0100)2 = (4)10 快速复习C语言 - 1变量与运算符 标签:size image 范围 静态类 指针 算术 算术运算 定义 存储 原文地址:https://www.cnblogs.com/muyisir/p/13032890.html变量与运算符
int
、char
、float
、double
等数据类型为前提条件。if ( fabs(f-0)
#define
#define
的处理在程序的预处理阶段,占编译时间,不占运行时间。缺点是不检查语法,只是单纯的宏体与宏名之间的替换。#define MAX(a,b) ({ int A=a, B=b; ((A) > (B) ? (A) : (B)); })
定义变量
[存储类型] 数据类型 标识符 = 值
存储类型
auto
:默认存储类型。
register
:(建议型1)寄存器类型。
double
类型就不可以;
static
:静态类型。可以修饰变量和函数,将变量或函数的作用域限制在当前文件中,外部文件无法引用。
extern
:说明型关键字。不能改变被说明的变量的类型或值。运算符
+
-
*
/
%
++
--
……
==
>=
>
!=
&&
||
!
>>
&
|
^
~
=
? :
,
*
&
sizeof()
char
int
float
double
…….
->
[]
()
位运算
左移与右移
左移
shl
a ,表示 a 的二进制数向左移动(在后面添 0)b 位
>>
右移 shr
a >> b
,表示 a 的二进制数向右移动 b 位
&
与运算 and
|
或运算 or
^
异或运算 xor
a = 11;
b = 9;
a = a ^ b;
b = a ^ b; // 相当于 b = (a ^ b) ^ b = a
a = a ^ b; // 相当于 a = (a ^ b) ^ a = b
printf("a = %d, b = %d\n", a, b); // a = 9, b = 11
a
= a ^ b = (11)10 ^ (9)10 = (1011)2 ^ (1001)2 = (0010)2 = (2)10b
= a ^ b = (2)10 ^ (9)10 = (0010)2 ^ (1001)2 = (1011)2 = (11)10a
= a ^ b = (11)10 ^ (2)10 = (1011)2 ^ (0010)2 = (1001)2 = (9)10
~
取反运算 not
位运算常用运算
num = num | 1
num = num & ~(1
if(num & 1
上一篇:python RSA加密,字节格式和base64编码格式
下一篇:Java可变参数