C/C++ leetcode刷题的各种小tips记录

文章介绍了编程中的运算符优先级和结合性规则,包括括号、成员选择、算术运算符等,并详细列出了不同整型和浮点型数据类型的字节数和数值范围。此外,还分享了代码优化技巧,如使用位移操作替代乘除以及求整数绝对值的方法。
摘要由CSDN通过智能技术生成

一、常见知识整理

1. 运算符优先级和结合

优先级运算符结合性
1

()(括号/函数运算符)        [](下标运算符)

 .(成员选择(对象))        ->(成员选择(指针))

从左到右
2

!(逻辑非)        ~(按位取反)

+(正)        -(负)

++        --

*(取值运算符)        &(取地址运算符)

(type)(强制类型转换)

从右到左
3*(乘)        /(除)        %(取余)从左到右
4+(加)        -(减)从左到右
5<<(左移)        >>(右移)从左到右
6

>(大于)        >=(大于等于)

<(小于)        <=(小于等于)

从左到右
7==(等于)        !=(不等于)从左到右
8&(按位与)从左到右
9^(按位异或)从左到右
10|(按位或)从左到右
11&&(逻辑与)从左到右
12||(逻辑或)从左到右
13?:(条件运算符)从右到左
14

=(赋值运算符)

/=        *=        %=

+=        -=

>>=        <<=

&=        |=        ^=

从右到左
15,(逗号运算符)从左到右

2. 数据类型的字节数和数值范围

整数类型

类型标识符字节数数值范围表示方法

整形

无符号整型

int

unsigned

432bit

-2147483648 ~ 2147483647

0 ~ 4294967295

-2^31 ~ 2^31-1

0 ~ 2^32-1

0

0u

短整型

无符号短整型

short

unsigned short

216bit

-32768 ~ 32767

0 ~ 65535

-2^15 ~ 2^15-1

0 ~ 2^16 -1

-

长整型

无符号长整形

long

unsigned long

432bit

2147483648 ~ 2147483647

0 ~ 4294967295

-2^31 ~ 2^31-1

0 ~ 2^32-1

0l

0ul

字符型

无符号字符型

char

unsigned char

18bit

-128 ~ 127

0 ~ 255

-2^7 ~ 2^7-1

0~2^8-1

-

浮点数类型

类型标识符字节数指数位宽尾数位宽取值范围表示方法
单精度float48bit23bit

-3.4×10^(38) ~ 3.4×10^(38)

0.0f
双精度double811bit

52bit

-1.7×10^(308) ~ 1.7×10^(308)

0.0

二、省时间省空间的代码操作

1. 用位移操作代替乘除

乘/除2

x << 1 代替 x * 2

x >> 1 代替 x / 2

判断奇偶数

x & 0x1 == 1 代替 x % 2 == 1 (奇数)

x & 0x1 == 0 代替 x % 2 == 0 (偶数)

2. 求绝对值

int型变量n的求绝对值方法为

unsigned n1 = n > 0 ? n : (unsigned) ~n + 1

注意:考虑到int型变量的边界,n的最小值是-2147483648,最大值是2147483647,因此最小值取绝对值后对于int型是溢出的,因此要强制类型转换成unsigned型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值