黑马程序员技术交流社区

标题: iOS基础班-进制 [打印本页]

作者: TGII    时间: 2016-5-25 00:20
标题: iOS基础班-进制
        1. 什么叫进制?
•        一种计数方式,侧重于计数的时候,逢几进一
       
        2. C语言中可以识别的进制数?
•        ① 二进制 : 逢二进一,用0与1表示, 前缀为0b,无特定的输出占位符.
•        ② 八进制 : 逢八进一,用0-7表示,前缀为0,输出占位符为%o.
•        ③ 十进制 : 逢十进一,用0-9表示,默认为十进制,输出占位符为%d.
•        ④ 十六进制: 逢十六进一,用0-9,a-f,前缀为0x,输出占位符为%x.
       
        3. 进制的作用:用于计数.
       
        4. 进制间的转换:
•        1.基本概念
o        数码:指的是这个数据的数字
o        数位:从0开始,从右到左,依次递增
o        基数:指的就是这个数的进制
o        位权:数码*(基数的数位次幂)
•        2. 进制间的转换
o        除K取余法
o        加权法
o        三合一法则-----一拆三法则
o        四合一法则-----一拆四法则
       
        5. 内存的构造和变量所占的字节数
•        字节作为储存数据的最小单元,即一个字节有八个二进制位.
•        声明变量时,并不是去开辟空间,而是去申请一个指定字节数的连续空间.
•       
       
        6.sizeof数据所占用的字节数
•        作用:用来计算变量与常量占用的字节数
•        格式:
o        sizeof(变量名);
o        sizeof(数据类型);
o        sizeof(常量);
•        特例: sizeof(char) = 1;
o        sizeof(‘字符常量’) = 4;
•        注意事项
o        使用sizeof的时候,某些情况下,可以直接省略小括弧,但为了安全起见,最好不要省略.
        7. 原码,反码与补码
•        任何数据,在内存中都是以补码的形式存储的.
•        原码:
o        最高位表示符号位,剩下的位数,是这个数的绝对值的二进制
•        反码:
o        正数的反码为本身
负数的反码就是符号位不变,其他二进制位取反
•        补码:
o        正数的补码就是其原码
o        负数的补码就是其反码的基础上+1.
       
        8. 为什么数据要以补码的形式存在呢?(让计算机更方便的进行减法运算)
•        计算机只有加法运算,没有减法运算.
•        使用补码做运算效率更高
•        为了让计算机更方便的运算.
•       
        9 . 按位操作
•        位运算 : 指的是二进制数据的每一位来参与运算
o        位运算符的作用: 提高运算的效率
o        位运算的前提:这个数必须是一个二进制数
♣        参与运算的二进制数据必须是以补码形式存在的.
♣        位运算的结果也是二进制的补码形式的.
•        位运算符
o        按位与:& (遇0为0)
♣        任何数按位与1,结果都是这个数的最低位--用于判断奇偶性
o        按位或:| (遇1为1)
o       
o        按位异或: ^ (相同为0,不同为1)
♣        两次异或同一个数,其值不变
o        按位取反: ~(遇0为1,遇1为0)
♣        能够改变正负性
o        按位左移与按位右移
♣        左移 ; << (低位补0,高位溢出就丢弃)
⎥        左移有可能改变正负性
⎥        将1个数左移,相当于将这个数乘以2的n次方
♣        右移 : >>(低位溢出丢弃,高位补符号位)
⎥        右移不改变正负性
⎥        将一个数右移n位,相当于将这个数除以2的n次方
       
        10. 变量的存储细节
•        1.同一变量所占的字节空间一定数连续的
o        声明变量,就会占用内存空间,程序运行时,系统就会自动的分配其他变量的内存空间,这时使得相邻变量间的地址不一定连续.
•        2.变量分配空间时,先定义的先从高地址向低地址分配,分配连续的指定字节数的空间
•        3.数据的存储是以二进制的补码形式存储的,存储的时候,低地址存低位,高地址存高位
       
        11. int类型的修饰符
•        作用:指定int类型的变量在内存空间中占用的字节数
•        short修饰符:占两个字节
o        输出格式: %hd
o        声明时可以省略int
•        long修饰符 : 32 : 四个字节  64 : 占 8个字节
o        输出格式: %ld
o        声明时,可省略int
•        long long 修饰符:占用8个字节
o        输出格式: %lld
o        声明时可以省略int
•        unsigned修饰符:最高位不要用来表示符号位
o        最小值为0;
o        最大值为:2^16-1
o        unsigned int   ------ %u
o        unsigned short ------- %hu
o        unsigned long --------%lu
o        unsigned long long ---- %llu
o       
        12. char类型变量的深入
•        任何数据在内存中都是以二进制的补码的形式存在
•        字符数据在内存中存储的是这个字符所对应的ASCII码的二进制
•        char类型可以用%d输出,char类型变量的值
•        char变量是有符号的,最高位为符号位
%c读取时,存储变量中的整数,然后再去ASCII中去查找这个整数对应的字符,在显示这个字符.
作者: deepindo    时间: 2016-5-25 01:06
这是课程总结么




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2