# leetcode
**Repository Path**: yaoyaoling11/leetcode
## Basic Information
- **Project Name**: leetcode
- **Description**: 记录在leetcode刷题过程中的知识点
- **Primary Language**: C++
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-02-11
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# c++:n&1
* 在C/C++语言里,&代表取地址或者“位与”运算
>> * 取变量的地址:&变量名,这将获得该变量的地址,例:int a = 1, &p = a。
>> * 进行位与运算,格式是:变量1&变量2,进行计算时,将会把类型提升为int。
* “位与”运算是“位运算”的一种,运算法则是在二进制数下,相同位的两个数字都为1,则为1;若有一个不为1,则为0。&运算通常用于二进制取位操作。`例如一个数 & 1的结果就是取二进制的最末位`。
* 这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数。
* 再举个例子,6的二进制是110,11的二进制是1011,那么6 & 11(也可以表达为6 and 11)的结果就是二进制的10,即十进制的2。
# 计算机数值表示
在计算机系统中,数值一律用**补码**来表示和存储。
## 整数
* 无符号数:原码表示=补码表示
* 有符号数
> * 正数:原码表示=补码表示
> * 负数:原码**除符号位**外所有位取反,然后加一