C语言入门-day02

一、编译

test1.c

gcc test1.c -- 默认生成a.out可执行文件

gcc teset1.c -o test1

编译的四个阶段:

1.预处理 -- 展开头文件/宏替换/去掉注释/条件编译

    生成预处理文件:gcc -E test1.c test1.i

    #include

   #define

  #if    -- 如果if后面是true ,则编译if 和 endif之间的代码

  #else -- 建立另一个选择

  #elif -- 与else if相同

  #endif  -- 标识一个#if模块的结束

宏的优点:

    1、代码复用率高

    2、提高性能

缺点:

    1、不可调试

    2、无类型安全检查

    3、可读性差,容易出错

        #define ((x)+(y)) 200

         x+y*20 => 200 * 20

2.编译:检查语法,生成汇编

    生成汇编:gcc  -S  testt1.c  test1.s  

3.汇编: 汇编代码转换成机器码

    gcc -c  test1.c -o test1.o

4.链接: 将所有.o文件链接在一起生成可执行文件 a.out

    动态链接库

    静态链接库

二、计算机组成

输入设备:向计算机输入数据和信息的设备

输出设备:是人与计算机交互的一个部件,用于数据输出

存储器:是计算机的记忆设备,用于存放数据和程序

控制器:是计算机的指挥中心,负责决定执行程序的顺序

运算器:计算机中执行各种算数和逻辑运算的部件

三、机器语言  -- 二进制

每一位只有 0 1

四、数值数据

十进制 -- 每一位可以取 0 - 9

    满十进一

二进制:每一位只能取0 1(前面加0b)

    满二进一

    十进制 换算成 二进制:

    1、除方法

 

    2、凑方法

        123 = 64 + 32 + 16 + 8 + 2 + 1

        2^6 + 2^5  + 2^4 + 2^3 + 2^1 + 2^0

    二进制换算成 十进制

        10111 1010 = 1 * 2^8 + 1* 2^6 + 1* 2^5 + 1* 2^4 + 1* 2^3 + + 1* 2^1

八进制 ... 每一位只能取 0~7(前面加0)

        满八进一

十进制 换算成 八进制 

        378 -> 0576

八进制 换算成 十进制

        0576 = 5 * 8^2 + 7 * 8^1 + 2 * 8^0       

二进制 换算成 八进制 (三位换一位)

    10111 1010 =》 0572 (三位三位的看101   111  010分别对应5 7 2)

八进制 换算成 二进制 (一位换三位)

07474 => 111 100 111 100

十六进制(前面加0x)-- 每一位可以取到0-9、a-f

    满十六进一

十进制 换算成 十六进制

十六进制 换算成 十进制

二进制 换算成 十六进制 (四位换一位)

    1111 0011 1100 = 0xf3c

十六进制 换算成 二进制 (一位换四位)

    0xabcd07 = 1010 1011 1100 1101 0000 0111

五、非数值数据 -- C语言中 字符用' '括起来,字符串用" "括起来

ASCII码:字符表256个

    第一部分: 32个

        一段用于通讯或控制、有一些字符可以显示在屏幕上,有一些没法显示

        能够看到效果

     第二部分:96个

        阿拉伯数字、英文大小写、底线、括号等符号
        全部都可以显示在屏幕上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值