C/C++|C语言程序设计及快速入门|C语言基础|程序运行和内存空间|进制|ascii码|字符转换|格式输出-学习笔记(3)

文章目录

    • 学习内容提要
      • 关于学习教材
      • 推荐书籍或资料
      • 这个课程我们怎么学
      • 课程特色
      • C语言的重要性?
    • 从和编程相关的计算机基础开始
    • 从计算机的组成谈谈程序的运行
      • 代码是怎么变成程序的
    • 不同的进制,不同的世界
    • 程序和内存空间模型
      • 打印地址示例
    • Tips: bit和byte
    • 字符编码基础---谈谈ascii码
      • 字符在计算机中如何存储的
    • TIPS1:巧用ASC码表的一些编程技巧
      • 字符转换示例
      • 转换示例
    • TIPS2:格式输出
      • 不同进制打印示例

摘自: 麦子学院-C语言程序设计及快速入门

学习内容提要

计算机基础知识(C语言相关)
C语言基础导学
C语言进阶导学
一个C语言小项目的实现

关于学习教材

C语言编程.一本全面的Q语言入门教程(第3版)

推荐书籍或资料

代码大全
高质量C语言编程
C语言库函数参考手册
C语言常见问题集

这个课程我们怎么学

1看视频
2结合视频看教材
3难点多理解
4动手多编程
5编码要规范

课程特色

1.真正的零基础课程,从计算机基础开始
2.摒弃枯燥的Q语言语法讲解,就讲学习重点和难点
3.真正有用的C语言课程,内含大量编程经验和技巧
4.适合零基础同时也适合进阶学习,内容由浅入深
5.强调商业编码规范,以后求职Q语言不再是你的门槛
6.老师实际编码操作,从程序设计需求分析,到流程图,到伪代码,到代码实现,真正告诉你该如何编程。

C语言的重要性?

1先看看编程语言排行榜
C/C++|C语言程序设计及快速入门|C语言基础|程序运行和内存空间|进制|ascii码|字符转换|格式输出-学习笔记(3)_第1张图片
2现在哪些开发还会用到C语言?
1)单片机,指针-地址-硬件
2)驱动linux
3)iOS,面向对象特性
4)PC,
3哪些人需要学习C语言?
1)嵌入式
2)linxu底层及应用
3)iOS
Tips:编程语言学习之路
1)语法
2)编码规范
3)程序设计的思想,编码思维

从和编程相关的计算机基础开始

从计算机的组成谈谈程序的运行

代码是怎么变成程序的

产生代码和让代码变成程序的必要工具
一个图看懂代码到程序的过程

C/C++|C语言程序设计及快速入门|C语言基础|程序运行和内存空间|进制|ascii码|字符转换|格式输出-学习笔记(3)_第2张图片

不同的进制,不同的世界

计算机的进制和人类的进制
1什么是进制
2计算机的世界—二进制
3人类的世界—十进制,十六进制
常见的进制转换
http://jingyan.baidu.com/article/495ba84109665338b30ede98.html
Tips:用电脑自带的计算器实现进制快速转换
C/C++|C语言程序设计及快速入门|C语言基础|程序运行和内存空间|进制|ascii码|字符转换|格式输出-学习笔记(3)_第3张图片

Tips:编程中,哪些场合会用到进制的转换

程序和内存空间模型

1两个概念—物理内存及内存空间模型
C/C++|C语言程序设计及快速入门|C语言基础|程序运行和内存空间|进制|ascii码|字符转换|格式输出-学习笔记(3)_第4张图片
2内存空间的基本单位 1字节=8bit(8个空)11111111=0xff=255
3内存空间几个要素
空间大小
地址

打印地址示例

#include 

int main()
{
    int a =POLICE;
    printf("%p\n",&a);
    return 0;
}

返回值:

c:\Users\Vera\Desktop>cd "c:\Users\Vera\Desktop\" && gcc 2.c -o 2 && "c:\Users\Vera\Desktop\"2

000000000064FE2C

00 00 00 00 00 64 FE 2C 2位1个字节,8个字节,64位。
静态地址示例:

#include 

int main()
{
    int a =2;
    static int b=12;
    printf("%p\n",&a);
    printf("%p\n",&b);
    printf("%p\n",b);
    //static b=12;
    //printf("%p %p\n",&a,&b);
    return 0;
}

返回值:

c:\Users\Vera\Desktop>cd "c:\Users\Vera\Desktop\" && gcc 2.c -o 2 && "c:\Users\Vera\Desktop\"2
000000000064FE2C
0000000000408000
000000000000000C //12=0x0C

Tips: bit和byte

1byte=8bit

字符编码基础—谈谈ascii码

字符在计算机中如何存储的

1英文字符的存储
2中文字符的存储(unicode)

1什么是ASC码表
国际上普遍采用ASC编码(American Standard Code for Information Interchange)。美国信息交换标准代码是一种用于信息交换的美国标准代码。7位字符集广泛用于代表标准美国键盘上的字符或符号。通过将这些字符使用的值标准化,
ASCII允许计算机和计算机程序交换信息。ASCI字符集是与ANS字符集中的前面128个(0-127)字符相同。
2如何查看ASC码表

TIPS1:巧用ASC码表的一些编程技巧

·数字字符到数字的转换:数字表示的字符-0x30(48)得到真实的数字

字符转换示例

#include 

int main()
{
    char c='1';
    printf("c=%c,c=%d,c_change=%d\n",c,c,c-48);
    return 0;
}

返回值:

c:\Users\Vera\Desktop>cd "c:\Users\Vera\Desktop\" && gcc 2.c -o 2 && "c:\Users\Vera\Desktop\"2
c=1,c=49,c_change=1

·大小写字母的转换:“a”-“A”=0x32

转换示例

#include 

int main()
{
    char c='A';
    printf("c(char)=%c,c(int)=%d,c_change(char)=%c,c_change(int)=%d,c_change(HEX)=%x\n",c,c,c+32,c+32,c+0x20);
    return 0;
}

返回值:

c:\Users\Vera\Desktop>cd "c:\Users\Vera\Desktop\" && gcc 2.c -o 2 && "c:\Users\Vera\Desktop\"2
c(char)=A,c(int)=65,c_change(char)=a,c_change(int)=97,c_change(HEX)=61

TIPS2:格式输出

%x:普通小写16进制
%X:普通大写16进制
%#x:带0x前缀的小写16进制
%#X:带0X前缀的大写16进制
%hd 中h的意思是短整形
%ld中l的意思是长整型

不同进制打印示例

#include 
int main()
{
    short a = 0b1010110;  //二进制数字
    int b = 02713;  //八进制数字
    long c = 0X1DAB83;  //十六进制数字

    printf("a=%ho, b=%o, c=%lo\n", a, b, c);  //以八进制形似输出
    printf("a=%hd, b=%d, c=%ld\n", a, b, c);  //以十进制形式输出
    printf("a=%hx, b=%x, c=%lx\n", a, b, c);  //以十六进制形式输出(字母小写)
    printf("a=%hX, b=%X, c=%lX\n", a, b, c);  //以十六进制形式输出(字母大写)
    return 0;
}

返回值:

c:\Users\Vera\Desktop>cd "c:\Users\Vera\Desktop\" && gcc 1.c -o 1 && "c:\Users\Vera\Desktop\"1
a=126, b=2713, c=7325603
a=86, b=1483, c=1944451
a=56, b=5cb, c=1dab83
a=56, b=5CB, c=1DAB83

你可能感兴趣的:(C/C++,开发语言,c语言,物联网开发入门,学习笔记)