涉及到的知识点有:编码风格、c语言的数据类型、常量、计算机里面的进制、原码反码补码、int类型、整数的溢出、大端对齐与小端对齐、char类型(字符类型)、
浮点类型float \ double \ long double、类型限定、字符串格式化输出与输入、基本运算符、运算符的优先级、类型转换等。
=============================================================================
gcc -o a1.s -S a1.cgcc把c语言代码转换为汇编代码
-----------------------------------------------------------------------------
关于编码风格的说明:
int dog_name; linux编码风格
int dog_age;
int iDogName; 微软编码风格
int iDogAge;
编码一定要工整,这是初学者容易忽略的。
=============================================================================
“我是一名从事了10年开发的老程序员,最近我花了一些时间整理关于C语言、C++,自己有做的材料的整合,一个完整的学习C语言、C++的路线,学习材料和工具。全球最大的C/C++爱好者就在我这里,进企鹅裙(<C语言C++编程学习14>)学习免费送给大家。这里是编程爱好者的聚集地,欢迎初学和进阶中的小伙伴。希望你也能凭自己的努力,成为下一个优秀的程序员。
C语言的数据类型:
1、常量:在此程序运行中不可变化的量(注意常量也是有类型的哦!)
第一种定义常量的方法:
#define MAX 100这种定义常量的方法一般叫宏常量,所以有时也叫定义了一个宏,宏常量的常量名一般是大写字母。
第二种定义常量的方法:
const int max = 0;const常量,
一般区别:c语言里面用宏常量比较多,c++用const比较多。
-----------------------------------------------------------------------------
"你好" 字符串常量
500 500本身是整数常量
比如:
int a = 500;
500 = 0;//这句是错误的
=============================================================================
计算机里面的进制:
十进制 二进制 八进制 十六进制
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 a
11 1011 13 b
12 1100 14 c
13 1101 15 d
14 1110 16 e
15 1111 17 f
16 10000 20 10
17 10001 21 11
-----------------------------------------------------------------------------
一个二进制的位就是一个bit(比特)
8个bit是一个BYTE(字节)
2个BYTE是一个WORD(字)
2个WORD是一个DWORD(双字)
1024个BYTE 是1KBYTE
1024K 是1M
1024M 是1G
1024G 是1T
1024T 是1P
1024P 是1E
1024E 是1Z
1024Z 是1Y
-----------------------------------------------------------------------------
512GB 硬盘(单位是字节)
12Mb 网络带宽(单位是比特)
200MB 文件的大小(单位是字节)
100Mb 网卡(单位是比特)
-----------------------------------------------------------------------------
进制之间的转换:
10101010111111010101011
把一个二进制数转化为10进制是很困难的,但是计算机使用的就是二进制。
从右到左起,每3个一组,不够的补零。
010 101 010 111 111 010 101 011转化为8进制
2 5 2 7 7 2 5 3
从右到左起,每4个一组,不够的补零。
0101 0101 0111 1110 1010 1011转化为16进制
5 5 7 e a b
二进制其实和8进制、16进制是一一对应的,在计算机语言中一般不直接用二进制,c语言更多的用8进制或者16进制
-----------------------------------------------------------------------------
把十进制的56转化为2进制
先把这个数转化为8进制,然后把8进制直接对应为2进制
用56除以8,分别取余数和商数
8 56
7 0
0 7
70 转化为8进制的结果
111 000 转化为2进制的结果
-----------------------------------------------------------------------------
16 100
6 4
0 6
64 转化为8进制的结果
0110 0100 转化为2进制的结果
-----------------------------------------------------------------------------
2 100
50 0
25 0
12 1
6 0
3 0
1 1
0 1
1100100 直接转化为2进制的结果
=============================================================================
这些数对于计算机来讲,他们是怎么放的呢??
1、原码
例如:7的二进制是多少?(即7的二进制原码如下)
111
0000 0111用一个BYTE(字节)表示
0000 0000 0000 0111用一个WORD(字)表示(即用2个字节来表示)
0000 0000 0000 0000 0000 0000 0000 0111用一个DWORD(双字)表示(即用4个字节来表示)
那么 -7 该如何表示呢?原则是:最高位为符号位,符号位0代表正数,1代表负数
-7的二进制是多少?(即 -7 的二进制原码如下)
1000 0111 用一个BYTE