一.源码 反码 补码
1.正整数:源码 反码 补码都相同 第一位为符号位 1为正数 0为负数
1=0000 0000 0000 0000 0000 0000 0000 0001
2.负整数:
源码:
1000 0000 0000 0000 0000 0000 0000 0001
反码:符号位不变 其他位取反
1111 1111 1111 1111 1111 1111 1111 1110
补码:反码+1
1111 1111 1111 1111 1111 1111 1111 1111
3.在计算机中储存的都是数字的补码
4.运算1-1=1+-1
0000 0000 0000 0000 0000 0000 0000 0001
1111 1111 1111 1111 1111 1111 1111 1111
------------------------------------------------------------------------
0000 0000 0000 0000 0000 0000 0000 0000
二.位运算 针对于二进制的运算
1.& 按位与
对应二进制位上 一个为0全为0 全1为1
2.| 按位或
对应的二进制位上一个为1则为1 全0为0
3.^ 按位异或
对应二进制位上 不同为1 相同为0
多个数异或遵循加法交换律
任何异或上0的数都为原来的数
相同的数异或为0
4.~ 按位取反
对应二进制位上 0变1 1变0
5.>> 右移
m>>n 向右移动n位 移出的位删除 补缺符号位(正0 负1)
快速计算一个数除以2的n次方
6.<< 左移
m向左移动n位 移出来的直接删除 移入的用0补齐
左移可能会改变符号位(正负)
使用场景:当数比较小时候,可以快速计算这个数乘以2的多少次方
7.左乘右除
三.变量
当定义变量的时候 首先会分配地址大的字节
先定义变量的地址大于后定义变量的地址
变量的地址就是变量所储存的空间
高位在高字节上 地位在低字节上
四.变量的修饰符
int 取值-2的31次方—2的31次方-1
short 取值-2的15次方—2的15次方-1
long 取值-2的31次方—2的31次方-1
long long 取值-2的31次方—2的31次方-1(64 位操作系统)
Unsigned 无符号的数
Unsigned int I; 取值范围0-2的32次方-1 扩大一倍
五.字符类型
char 1个字节 8位 0-255=256=2的8次方 ASCII
六.其它
1.二进制中最高位是1 这个数为 负数 为0 正数
2.二进制中最后1位和奇数偶数有关 1位奇数 0为偶数
3.两个数交换a b
a=a^b
b=a^b
a=a^b
4.%p是用来输出地址的
5.0 代表8进制
0x 代表16进制
无 代表10进制
6.Char 1个字节 8位 0-255=256=2的8次方
Short 2个字节
Int 4个字节
long 8个字节
long long8个字节(64 位操作系统)
一个中文占2个字节