黑马程序员---C基础6【#include指令】【模块化编程】【计算机的进制】【原码、反码、补码】【位运算符】

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

【#include指令】

1、文件包含命令的格式:

    1)#include “”双引号是包含用户自己书写定义的文件(可以是头文件,也可以是普通的文件)#include是预处理指令,不是一个语句,不需要加封号

    2)#include<>   包含一个系统(编译器自带)的头文件

2、文件包含的实质:

    把指定文件内容插入该命令行位置取代该命令行,

    include不一定非要写在第一行;

3、include文件搜索顺序:

    把当前目录中a.txt文件中的内容替换到当前写include的地方;

    当前目录:和main。c同一个文件夹下的目录;

    #include“”用户自己对于的

      1)在当前文件所在的路径下查找;

      2)如果上面没有找到,到编译器include路径查找;

      3)如果编译器include路径下没有找到,系统的include路径下查找;

      4)如果上面三个都没有找到就报错了;

    #include<>   包含一个系统(编译器自带)的头文件

      1)编译器的include路径下查找;

      2)如果没有去系统include路径下查找;

      3)如果没有就报错;

【模块化编程】

1、模块化编程概念:

    所谓模块化编程(多文件开发),就是多文件(。c文件)编程,一个。c文件一个。h文件可以称为一个模块;

    把功能相似的函数封装到不同的文件中;

2、以下场景中会使用头文件:

    1)通过头文件来调用库功能;

      在很多场合,源代码不便向用户公布;

    2)多文件编译

      将稍大的项目分成几个文件实现;

    3)头文件能加强类型的安全检查

3、实现:

    .c  c语言的源文件:

    .h  (header)头文件

      1)方法的声明  但是不能实现方法

      2)声明变量  不能定义变量

      3)声明结构体;

4、好处:

    1)用时只需包含。h文件,对外隐藏源文件

    2)团队的分工合作

    3)可以把功能细划分若干个模块

5、多文件开发实现(模块化开发实现):

    列子:

    实现计算器:

      1)计算环节

      2)显示结果

【计算机的进制】

1、进制的概念:

    是一种计数的方式,数值的表示形式;

2、常见进制:

    十进制,二进制,八进制,十六进制;

3、进制数字进位方法:

    十进制:0.1.2.3.4.5.6.7.8.9·逢十进一;

    二进制:0.1 逢二进一,  

    书写形式:需要以0b,0B开头,0b101

    八进制:0.1.2.3.4.5.6.7逢八进一,以0开头,045

    十六进制:逢十六进一,9,A,B,C,D,E,F,, 以0x,0X开头,0x45;

4、进制转换的要素:

      1)数位

        数位是指数码在一个数中所处的位置;

        76543210

        01100100

5、转换

        10进制转换2进制,

          除二取余,小数乘2取整法,高位补0,余数倒序就是二进制

        2进制转换10进制

          位权相加,

        2进制转换16进制:

          整数部分从右向左四位并一位,小数部分从左向右四位并一位;4合1;

        16进制转换2进制:

          将16进制常量转换为2进制,每一位拆成4为二进制位,不足就补0

【原码、反码、补码】

1、概念:

    数据在计算机中的储存方法是补码形式储存的;

    数据分为有符号数,和无符号数;

    正数最高位是0,负数最高位是1;

    对于正数:反码==补码==原码

    对于负数:    反码==除符号位以外的各位取反。补码=反码+1

2、原码:

    原码就是符号位加上真值的绝对值【+1】源=0000 0001     【-1】源=1000 0001

    8位二进制数的取值范围是:

    1111 1111 ,0111 1111;正127到负128

3、反码:

    正数反码是本身,负数反码是符号位不变,其余的各位取反

4、补码

    正数补码就是本身,负数是在反码基础上加1;

    [+1]源=0000 0001    =0000 0001 补

    [-1]源=1000 0001      =1111 1110 反=  1111 1111 补;

5、为什么要引入反码

    计算机识别符号位,减法就是加一个负数;计算机无法做减法;用原码进行计算会有负0;

【位运算符】

1、位运算符

    以二进制进行的计算;只运用于整型

      1)&按位与:9&4=0,同1则结果为1,有0结果为0;任何基数和1与都是1;偶数与1都是0;

      2)|按位或   有1则为1,同0为0;

      3)~按位取反   1变0,0变1;

      4)^按位异或   相同为0,不同为1

      5)>>右位移   各二进制全部右移n位,低位丢弃,高位补0,相当于原数/2^n;不会改变一个数的正负性;

      6)<<左位移    各二进制全部左移n位,高位丢弃,低位补0,向左移动n位,相当于原数*2^n;可能改变一个数的正负性;

2、实用:

    任何基数和1与都是1;偶数与1都是0;

    可以用左右移再&1的方法进行10进制转换2进制;

 1   int a=3,b=4;
 3 //    a=a-b;
 5 //    b=b+a;
 7 //    a=b-a;
 9     a=a^b;
11     b=a^b;
13     a=a^b;

    两个数交换

时间: 2024-10-29 19:08:31

黑马程序员---C基础6【#include指令】【模块化编程】【计算机的进制】【原码、反码、补码】【位运算符】的相关文章

黑马程序员——Java基础---IO(下)

黑马程序员——Java基础---IO(下) ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java除了基本的字节流.字符流之外,还提供了File类.properties类.打印流.序列流等和输入输出相关的类,它们能够帮助我们更好的处理信息.下面将对它们进行简单的介绍. 一.正

黑马程序员_JAVA 基础加强学习笔记

一.面向对象 (一)继承  1.继承的好处: (1) 提高了代码的复用性. (2) 让类与类之间产生了关系,提供了另一个特征多态的前提. 注意: 子类中所有的构造函数都会默认访问父类中的空参数的构造函数,因为每一个子类构造内第一行都有默认的语句super();  如果父类中没有空参数的构造函数,那么子类的构造函数内,必须通过super语句指定要访问的父类中的构造函数. 如果子类构造函数中用this来指定调用子类自己的构造函数,那么被调用的构造函数也一样会访问父类中的构造函数. 2.final特点

黑马程序员——Java基础---集合框架工具类

黑马程序员——Java基础<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java为操作Set.List和Map提供了一系列工具类,主要有Collections和Arrays.这两个工具类的特点:类中的方法都是静态的,不需要创建对象,直接使用类名调用即可.Collections:是集合对象

黑马程序员_Java基础加强(下)

8.注解类 注解相当于一种标记,加了注解就等于打上了某种标记,没加就等于没打特殊标记,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记就去干什么事,标记可以加在包.类.字段.方法,方法的参数以及局部变量上. 注解的应用结构图: 为注解增加属性 定义基本类型的属性和应用属性 在注解类中增加String color(); @MyAnnotation(color = "red") 用反射方式获得注解对应的实例对象后,再通过该对象调用属性对应的方法 MyAnno

黑马程序员_Java基础加强(上)

1.静态导入 静态导入是jdk1.5版本以后出现的新特性,一般是指导入静态方法,如:import static java.lang.System.out 是指导入系统输出的静态方法. 例: import static java.lang.System.out //导入java.lang包下的System类的静态方法out public class StaticImport { public static void main(String[] args) { int x=1; x++; out.p

黑马程序员-正则表达式基础

正则表达式是一种描述字符串集的方法,它是以字符串集中各字符串的共有特征为依据的.正则表达式可以用于搜索.编辑或者是操作文本和数据.它超出了 Java 程序设计语言的标准语法,因此有必要去学习特定的语法来构建正则表达式.正则表达式的变化是复杂的,一旦你理解了它们是如何被构造的话,你就能解析或者构建任意的正则表达式了..正则表达式由一些普通字符和一些元字符组成. 普通字符包括大小写的字母和数字,而元字符则具有特殊的含义.在最简单的情况下,一个正则表达式看上去就是一个普通的查找串.例如,正则表达式"a

黑马程序员——java基础——多线程

 黑马程序员--java基础--多线程 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 进程:是一个正在执行中的程序.每一个进程执行都有一个执行顺序.该顺序是一个执行路径,或者叫一个控制单元. 线程:就是进程中的一个独立的控制单元.线程在控制着进程的执行.一个进程中至少有一个线程. 一个进程至少有一个线程在运行,当一个进程中出现多个线程时,就称这个应用程序是多线程应用程序,每个线程在栈区中都有自己的执行空间,自己的方法区.自己的变量.

黑马程序员——java基础---IO(input output)流字符流

黑马程序员——java基础---IO(input output)流字符流 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- io(input output)流特点: 1,io流用来处理数据之间的传输 2,java对数据的操作是通过流的方式: 3,java用于操作流的对象都在io包中: 4,流按操作数据分为两种:字节流和字符流: 5,流按流向分为:输入流和输出流. 注意:流只能操作数据,而不能操作文件. 3.IO流的常用基类: 1)字节流的抽象

黑马程序员——java基础——反射

 黑马程序员--java基础--反射 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 反射 其实就是动态加载一个指定的类,并获取该类中的所有的内容.而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员. 反射就是把Java类中的各种成分映射成相应的java类. 简单说:反射技术可以对一个类进行解剖. 反射的基石-->Class类 1.java中的类是用来描述一类事物的共性,该类事物有什么属性,没有什么属性

黑马程序员——java基础——内部类

 黑马程序员--java基础--内部类 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 内部类 如果A类需要直接访问B类中的成员,而B类又需要建立A类的对象.这时,为了方便设计和访问,直接将A类定义在B类中.就可以了.A类就称为内部类.内部类可以直接访问外部类中的成员.而外部类想要访问内部类,必须要建立内部类的对象. 内部类的访问规则 1,内部类可以直接访问外部类中的成员,包括私有. 之所以可以直接访问外部类中的成员,是因为内部类中持有