005-进制与位运算
2015-06-04 20:20
225 查看
[b]进制[/b]
二进制 0 1组成,逢2进1
八进制 0~7组成,逢8进1
十进制 0~9组成,逢10进1
十六进制 0~15组成,逢16进1
printf以不同进制形式进行输出
变量的内存地址形式
变量在内存中是从高地址到低地址依次保存的,并且只保存二进制
查看内存地址的两种方式:%x和%p
各个类型变量的取值范围
类型修饰符
在64bit编译器环境下,
int占用4个字节(32bit),取值范围是-231~231-1;
short占用2个字节(16bit),取值范围是-215~215-1;
long占用8个字节(64bit),取值范围是-263~263-1。
可以连续使用2个long,也就是long long。一般来说,long long的范围是不小于long的,比如在32bit编译器环境下,long long占用8个字节,long占用4个字节。不过在64bit编译器环境下,long long跟long是一样的,都占用8个字节。
注意:short int等价于short,long int等价于long,long long int等价于long long
signed和unsigned
signed:表示有符号,也就是说最高位要当做符号位,所以包括正数、负数和0。
unsigned:表示无符号,也就是说最高位并不当做符号位,所 以不包括负数。
signed int a; a的取值范围是l -231 ~ 231 - 1
unsigned int a; a的取值范围是0 ~ 232 - 1
[b]位运算[/b]
1. & 按位与:只有对应的两个二进位均为1时,结果位才为1,否则为0。
回到顶部
2. | 按位或:只要对应的二个二进位有一个为1时,结果位就为1,否则为0。
回到顶部
3. ^ 按位异或:当对应的二进位相异(不相同)时,结果为1,否则为0。
回到顶部
4. ~ 取反:对整数a的各二进位进行取反,符号位也取反(0变1,1变0)
回到顶部
5. << 左移:把整数a的各二进位全部左移n位,高位丢弃,低位补0。左移n位其实就是乘以2的n次方。由于左移是丢弃最高位,0补最低位,所以符号位也会被丢弃,左移出来的结果值可能会改变正负性。
回到顶部
6. >> 右移: 把整数a的各二进位全部右移n位,保持符号位不变。右移n位其实就是除以2的n次方,为正数时, 符号位为0,最高位补0,为负数时,符号位为1,最高位是补0或是补1 取决于编译系统的规定。
转义字符
除了这些字符,其他的字符都可直接输出。
二进制 0 1组成,逢2进1
八进制 0~7组成,逢8进1
十进制 0~9组成,逢10进1
十六进制 0~15组成,逢16进1
printf以不同进制形式进行输出
变量的内存地址形式
变量在内存中是从高地址到低地址依次保存的,并且只保存二进制
查看内存地址的两种方式:%x和%p
各个类型变量的取值范围
类型修饰符
在64bit编译器环境下,
int占用4个字节(32bit),取值范围是-231~231-1;
short占用2个字节(16bit),取值范围是-215~215-1;
long占用8个字节(64bit),取值范围是-263~263-1。
可以连续使用2个long,也就是long long。一般来说,long long的范围是不小于long的,比如在32bit编译器环境下,long long占用8个字节,long占用4个字节。不过在64bit编译器环境下,long long跟long是一样的,都占用8个字节。
注意:short int等价于short,long int等价于long,long long int等价于long long
signed和unsigned
signed:表示有符号,也就是说最高位要当做符号位,所以包括正数、负数和0。
unsigned:表示无符号,也就是说最高位并不当做符号位,所 以不包括负数。
signed int a; a的取值范围是l -231 ~ 231 - 1
unsigned int a; a的取值范围是0 ~ 232 - 1
[b]位运算[/b]
1. & 按位与:只有对应的两个二进位均为1时,结果位才为1,否则为0。
回到顶部
2. | 按位或:只要对应的二个二进位有一个为1时,结果位就为1,否则为0。
回到顶部
3. ^ 按位异或:当对应的二进位相异(不相同)时,结果为1,否则为0。
回到顶部
4. ~ 取反:对整数a的各二进位进行取反,符号位也取反(0变1,1变0)
回到顶部
5. << 左移:把整数a的各二进位全部左移n位,高位丢弃,低位补0。左移n位其实就是乘以2的n次方。由于左移是丢弃最高位,0补最低位,所以符号位也会被丢弃,左移出来的结果值可能会改变正负性。
回到顶部
6. >> 右移: 把整数a的各二进位全部右移n位,保持符号位不变。右移n位其实就是除以2的n次方,为正数时, 符号位为0,最高位补0,为负数时,符号位为1,最高位是补0或是补1 取决于编译系统的规定。
转义字符
除了这些字符,其他的字符都可直接输出。
相关文章推荐
- POJ 1195 Mobile phones(二维树状数组)
- 探索WebKit内核(五):智能指针解析
- NSNull
- 近期要学习的内容
- [cogs] 329 K- 联赛
- 前端,我为什么不要你
- 参数嗅探(Parameter Sniffing)(1/2)
- unrecognized selector sent to instance 遇到的问题
- Git之分支创建策略
- 数据挖掘之Adaboost学习笔记
- Android logcat
- 带你一起Piu Piu Piu~
- android开发学习笔记系列(6)--代码规范
- SHELLING
- Eclipse安装SVN插件(转载)
- 客运综合管理系统项目—线路管理(站点新增修改)
- HDU 4584 Building bridges
- Centos6.5 源码搭建nginx1.4.7
- MySQL查询时强制区分大小写的方法
- php面向对象(OOP)—__toString()和__clone()