# 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。 # 计算机数值表示 在计算机系统中,数值一律用**补码**来表示和存储。 ## 整数 * 无符号数:原码表示=补码表示 * 有符号数 > * 正数:原码表示=补码表示 > * 负数:原码**除符号位**外所有位取反,然后加一