iOS分分钟搞定C语言 —— 进制
来源:互联网 发布:2016年火灾数据统计 编辑:程序博客网 时间:2024/05/16 06:24
一、什么是进制
是一种计数的方式,数值的表示形式。在iOS开发中能用到很少,在面试中会用到。
二、二进制
1> 特点:只有0和1,逢2进1
2> 书写格式:0b或者0b开头
3> 使用场合:二进制指令\二进制文件,变量在内存中就是二进制存储
4> 二进制和十进制的互相转换
5> n为二进制位所能表示的数据范围(不考虑负数):0~2的n次方
三、进制
1> 特点:0~7,逢八进一
2> 书写格式:0开头
3> 八进制和二进制的互相转换
四、十六进制
1> 特点:0~F,逢十六进一
2> 书写格式:0x或者0X开头
3> 十六进制和二进制的互相转换
五、 原码反码补码概念及转换
数据在计算机内部是以补码的形式储存的
数据分为有符号数和无符号数。
(1)原码
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。
(2)反码
正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。
(3)补码
正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)。
在64位计算机中,-1的原码、反码、补码如下
-1原码 【 1000 0000 0000 0000 0000 0000 0000 0001】
-1反码 【1111 1111 1111 1111 1111 1111 1111 1110 】
-1补码 【1111 1111 1111 1111 1111 1111 1111 1111 】
六、位运算符
位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。 C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的 char,short,int与long类型。
(1)位运算符与
& 按位与
只有对应的两个二进位均为1时,结果位才为1,否则为0
口诀: 同1为1;
规律
二进制中,与1相&就保持原位,与0相&就为0
应用场景:
按位与运算通常用来对某些位清0或保留某些位。例如把a的高位都清0,保留低八位,那么就a&255
判断奇偶: 将变量a与1做位与运算,若结果是1,则 a是奇数;若结果是0,则 a是偶数
任何数和1进行&操作,得到这个数的最低位
(2)位运算符异或
^ 按位异或
当对应的二进位相异(不相同)时,结果为1,否则为0
规律
相同整数相^的结果是0。比如5^5=0;
(3)位运算符取反
~ 取反
各二进位进行取反(0变1,1变0)
多个整数相^的结果跟顺序无关。比如5^6^7=5^7^6
因此得出结论:a^b^a = b
(4)左移位运算符
把整数a的各二进位全部左移n位,高位丢弃,低位补0。
左移n位其实就是:乘以2的n次方。
由于左移是丢弃最高位,0补最低位,所以符号位也会被丢弃,左移出来的结果值可能会改变正负性。
应用场景:
快速计算一个数乘以2的n次方
(5)右移位运算符
把整数a的各二进位全部右移n位,保持符号位不变。右移n位其实就是除以2的n次方
·为正数时, 符号位为0,最高位补0
·为负数时,符号位为1,最高位是补0或是补1
·取决于编译系统的规定
应用场景:
快速计算一个数除以2的n次方
- iOS分分钟搞定C语言 —— 进制
- iOS开发分分钟搞定C语言 —— 进制
- iOS开发分分钟搞定C语言 —— 数据类型
- iOS开发分分钟搞定C语言——函数
- iOS开发分分钟搞定C语言 —— 总结
- iOS开发分分钟搞定C语言 —— 数据类型
- iOS开发分分钟搞定C语言 —— 函数
- iOS开发分分钟搞定C语言 —— 总结
- iOS开发分分钟搞定C语言——运算符
- iOS开发分分钟搞定C语言 —— 流程控制
- iOS开发分分钟搞定C语言 —— 数组及排序
- iOS开发分分钟搞定C语言—— 字符串和指针
- iOS开发分分钟搞定C语言 —— 结构体和枚举
- iOS开发分分钟搞定C语言 —— 宏定义和关键字
- iOS开发分分钟搞定C语言 —— 运算符
- iOS开发分分钟搞定C语言 —— 流程控制
- iOS开发分分钟搞定C语言 —— 数组及排序
- iOS开发分分钟搞定C语言—— 字符串和指针
- Android官网中关于Creating a Bound Service的介绍笔记
- Address already in use: JVM_Bind
- 机房收费系统原型—登陆
- WPF中的柱形图的创建与使用
- web socket实现聊天室
- iOS分分钟搞定C语言 —— 进制
- Mobile OpenCart 自适应主题模板 ABC-0074
- NoSQL数据库使用心得
- HDU 5319多校 模拟
- codeforce 550 D Regular Bridge
- Java反射—模拟Spring的Aop
- linux目录结构
- Kafka集群安装
- 多态,重载和覆盖