黑马程序员——C语言基础教程笔记

黑马程序员——C语言基础教程笔记

https://blog.csdn.net/BinHeon


文章目录

  • 黑马程序员——C语言基础教程笔记
  • 前言
  • Day-1
    • 1.C语言概论
      • 1.1 什么是C语言
        • 1.1.1 C语言特点
        • 1.1.2 学习C语言的理由
        • 1.1.3 发展方向
        • 1.1.4 C语言中的关键字
        • 1.1.5 C语言中的运算符与优先级
    • 2.HelloWorld——第一个C语言程序
      • 2.1 开发环境:VS2019 Community
    • 3.系统函数system
      • 3.1 函数作用以及原型
      • 3.2 示例代码
    • 4.C程序编译步骤
    • 5.CPU和内部寄存器
      • 5.1 64位/32位区别
      • 5.2 CPU内部寄存器名字
    • 6.汇编语言(与C语言简单比较)
  • Day-2
    • 1.数据类型
      • 1.1 数据类型关键字
      • 1.2 数据存储相关关键字
      • 1.3 查看可执行程序所需空间——size
    • 2 常量与变量
      • 2.1 申明常量示例
      • 2.2 声明变量示例
      • 2.3 整型变量的定义和输出
      • 2.4 字符型变量的定义和输出
      • 2.4 实型(浮点型)变量的定义和输出
      • 2.5 字符串变量的定义和输出
      • 2.6 键盘输入scanf()和常用占位符%d等
      • 2.7 ASCII表
    • 3 进制转换
      • 3.1 进制及其赋值
      • 3.2 二进制与十进制
      • 3.3 二进制与八进制
      • 3.4 二进制与十六进制
    • 4 内存数值存储方式
      • 4.1 原码
      • 4.2 反码
      • 4.3 补码
  • Day-3
    • 1.数据类型
      • 1.1 aa
    • 2.数据类型
      • 2.1 aa
    • 3.数据类型
      • 3.1 aa
  • Day-4
    • 1.数据类型
      • 1.1 aa
    • 2.数据类型
      • 2.1 aa
    • 3.数据类型
      • 3.1 aa
  • 总结


前言

研三了,作为一枚菜鸡硕,为了找工作,只好重刷C语言。以下笔记是我在“黑马程序员:http://yun.itheima.com/”中根据课程所记下来的学习笔记。课程链接:http://yun.itheima.com/course/369.html


需要准备的软件:
1.Visual Studio(VS):(个人初学者,直接使用Community版本即可,这是免费版)
https://visualstudio.microsoft.com/zh-hans/downloads/
2.Qt:(个人初学者,下载一个免费版即可)
https://www.qt.io/download
3.Gcc:
https://sourceforge.net/projects/mingw/files/
安装教程:https://www.jianshu.com/p/dc0fc5d8c900
4.Linux环境(可能需要VMware虚拟机)



Day-1

1.C语言概论

1.1 什么是C语言

C语言来源:
百度百科:https://baike.baidu.com/item/c%E8%AF%AD%E8%A8%80/105958?fr=aladdin
维基百科:https://zh.wikipedia.org/wiki/C%E8%AF%AD%E8%A8%80

    语言是用来交流沟通,具有独特的语法规则和定义,双方必须遵循这些规则和定义才能实现真正的交流。一方说,一方听;说的一方传递信息,听的一方接收信息;说的一方下达命令,听的一方遵循命令做事情。
    语言是人和人之间的交流;C语言则是人与机器之间的交流。

1.1.1 C语言特点

优点 缺点
代码量小 写代码实现周期长
执行速递快 可移植性差
功能强大 过于自由,经验不足易出错
编程自由 对平台库依赖较多

1.1.2 学习C语言的理由

    考试、z做黑客、大学课程、企业面试、工程项目、各种高级程序语言的实现…
黑马程序员——C语言基础教程笔记_第1张图片
黑马程序员——C语言基础教程笔记_第2张图片

1.1.3 发展方向

黑马程序员——C语言基础教程笔记_第3张图片

1.1.4 C语言中的关键字

关键字 意义与作用 关键字 意义与作用
定义类型相关
int 整型,4字节(32/64位机) char 符号型,1字节
short 短整型,2字节 long 长整型,4字节(16/32位机)
float 单精度浮点型,小数,4字节 double 双精度浮点型,小数,8字节
signed 符号型 unsigned 无符号型
static 静态存储,修饰数据,表示该数据为静态变量 extern 外部存储,修饰数据/函数,表示该数据/函数在其他位置已被定义
auto 自动存储,修饰数据,表示该数据为自动存储的临时变量 register 寄存器存储,修饰数据,表示该数据尽量存储在寄存器中
const 只读,修饰数据,表示该数据只读 volatile 易变,修饰数据,表示该变量可能被意想不到地改变,每次使用都必须且小心读取,防止编译器优化该变量
struct 结构体,由具有相关性的若干成员数据组成,成员数据类型可不同,各自拥有各自的存储空间 union 联合体/共用体,由具有相关性的若干成员数据组成,成员数据类型可不同,成员数据公用一段存储空间
enum 枚举型,用于限定取值范围,其值为常量值 void 无类型/空,声明函数无返回值或无参数
typedef 用以取别名 char* 地址指针,用于对具体地址的访问,2字节(16位机)/4字节(32位机)/8字节(64位机)
控制语句相关
if 如果,条件语句 else 否则,条件语句
for 循环语句 while 循环语句
switch 选择/条件分支语句 case 条件分支
do 执行,通常与循环语句搭配使用 goto 无条件跳转语句,可作为循环语句使用
break 无条件跳出当前循环/条件分支 continue 跳过当前循环,继续下次循环
default 否则,选择语句中的默认分支 return 返回,用于终止子程序或需要子程序返回值时使用
sizeof 所占字节数,用于计算数据类型或变量长度

1.1.5 C语言中的运算符与优先级

    1)运算符

    ①算数运算符
黑马程序员——C语言基础教程笔记_第4张图片
    ②关系运算符
黑马程序员——C语言基础教程笔记_第5张图片
    ③逻辑运算符
黑马程序员——C语言基础教程笔记_第6张图片
    ④赋值运算符
黑马程序员——C语言基础教程笔记_第7张图片
    ⑤位运算符
黑马程序员——C语言基础教程笔记_第8张图片
    ⑥其他运算符
黑马程序员——C语言基础教程笔记_第9张图片

    2)优先级
黑马程序员——C语言基础教程笔记_第10张图片


2.HelloWorld——第一个C语言程序

2.1 开发环境:VS2019 Community

     1)新建工程:
     ①新建项目;②新建C++控制台应用;③项目命名“mhelloword”,并选择项目保存位置;④创建;⑤在项目树中,“源文件”下添加“新建项”,并选择“C++文件”,名称命名为“helloworld.c”以添加helloworld.c源文件;⑥可将原项目中自动生成的C++源文件“mhelloworld.cpp”从项目中移出;⑦在helloworld.c源文件中 编写C源码。

黑马程序员——C语言基础教程笔记_第11张图片

    ** 2)编写C源码:**

/* ----------------------------------------------------------------------------------
	C code for:
	anuthor:BinHeon https://blog.csdn.net/BinHeon
	date:   2020/09/14
	tips:
   ---------------------------------------------------------------------------------- */
#include  // 导入标准输入库文件,里面有printf等函数
                   // 如果是自定义库,可用 #include "xxx.h"
// -----------------------------------   全局参数   ---------------------------------

// -----------------------------------     函数     ---------------------------------
//------------------ 1. 函数1

// -----------------------------------     main     ---------------------------------
int main() //一个程序有且只有一个主函数(main)
{
	printf("Hello World!,This is a printf() function test code... \n"); // “//”行注释,注释内容不参赛编译;一句语句的结束需要用“;”;“\n”为结束换行字符,“\”在此处为转义字符。

	return 0; //
}
// -----------------------------------     end     ---------------------------------

3.系统函数system

3.1 函数作用以及原型

所在库:stdlib.h   系统
功能:1.可以调用系统命令(如,cmd中运行的命令);2.通过路径可以调用相应的应用程序(如,QQ:安装->在D:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe)
函数参数:command -- 外部执行程序名
函数返回值:成功- 0;失败- 任意数字
int system(const char *command);

3.2 示例代码

/* ----------------------------------------------------------------------------------
	C code for:
	anuthor:BinHeon https://blog.csdn.net/BinHeon
	date:   2020/09/14
	tips:
   ---------------------------------------------------------------------------------- */
#include  // 导入系统库文件,里面有system等函数
// -----------------------------------     main     ---------------------------------
int main() //一个程序有且只有一个主函数(main)
{
	//1.调用系统命令,打开电脑自带的计算器
	注:详细的命令参考https://www.cnblogs.com/walkwaters/p/12153364.html
	system("calc");
	//2.通过路径,打开安装的QQ等软件
	//路径:D:\Program Files(x86)\Tencent\QQ\Bin\QQScLauncher.exe
	注:由于该路劲存在空格字符,所以需要对“Program Files(x86)”进行处理
	    处理为:不包括空格,“前6字符”+~2”替换“Program Files(x86)”
	    其中2是因为D盘符下同时存在“Program Files”和“Program Files(x86)”
	    且“Program Files(x86)”从上往下排第2
	system("D:\\Progra~2\\Tencent\\QQ\\Bin\\QQScLauncher.exe");// 一般用“/”代替“\\”
	return 0; //
}

4.C程序编译步骤

     C程序编译成可执行程序4步:
        1.预处理 "gcc -E hello.c -o hello.i"
            宏定义处理、头文件处理、条件编译、注释删除等操作。
        2.编译 "gcc -S hello.i -o hello.s"
            检查语法,将预处理后的文件生成汇编文件。
        3.汇编 "gcc -c hello.s -o hello.o"
            将汇编文件生成目标文件(二进制文件)。
    4.链接 "gcc hello.o hello"
            将各种依赖库链接到最终的可执行程序中。

C程序编译成可执行程序4步:
gcc -E hello.c -o hello.i  --> 预编译
gcc -S hello.i -o hello.s  --> 预编译、编译
gcc -c hello.s -o hello.o  --> 预编译、编译、汇编
gcc hello.o -o hello       --> 预编译、编译、汇编、链接

编译1步完成:
gcc -o hello hello.c hello1.c  --> 一次性编译成可执行文件

黑马程序员——C语言基础教程笔记_第12张图片

黑马程序员——C语言基础教程笔记_第13张图片


5.CPU和内部寄存器

5.1 64位/32位区别

    1)、寄存器是CPU内部最基本的存储单元。
    2)、CPU对外是通过总线(地址、控制、数据)来和外部设备进行数据交互,总线的宽度是8位,CPU内部的寄存器也是8位,那么这个CPU就是8位CPU;如果总线是32位,寄存器也是32位,那么这个CPU就是32位;如果CPU内部寄存器是32位,但是总线只有16位,那么CPU为准32位
    3)、高位的CPU兼容低位CPU,但是低位不能兼容高位CPU;
    4)64位CPU架构运行64位软件操作系统,那么这个系统为64位;64位CPU架构运行32位软件操作系统,那么这个系统为32位。

5.2 CPU内部寄存器名字

黑马程序员——C语言基础教程笔记_第14张图片


6.汇编语言(与C语言简单比较)

/* ----------------------------------------------------------------------------------
	C code for:
	anuthor:BinHeon https://blog.csdn.net/BinHeon
	date:   2020/09/14
	tips:
   ---------------------------------------------------------------------------------- */
#include  // 导入标准输入库文件,里面有printf等函数
   // 如果是自定义库,可用 #include "xxx.h"
// -----------------------------------     main     ---------------------------------
int main() //一个程序有且只有一个主函数(main)
{
	// 采用C语言计算a+b的和并幅值给c
	int a = 10;
	int b = 20;
	int c;
	c = a + b;
	printf("C  --> %d\n", c);

	// 采用汇编语言计算a+b的和并幅值给c,eax表示32位的寄存器
	__asm    -->使用汇编
	{
		mov a, 30     -->30移动(赋值)到a
		mov b, 40
		mov eax, a    -->将a移动(赋值)32位寄存器eax
		add eax, b    -->加上eax和b
		mov c, eax   
	}
	printf("_asm  --> %d\n", c);
	
	return 0; 
}
// -----------------------------------     end     ---------------------------------


Day-2

1.数据类型

黑马程序员——C语言基础教程笔记_第15张图片

1.1 数据类型关键字

关键字 意义与作用 关键字 意义与作用
int 整型,4字节(32/64位机) char 符号型,1字节
short 短整型,2字节 long 长整型,4字节(16/32位机)
float 单精度浮点型,小数,4字节 double 双精度浮点型,小数,8字节
signed 符号型 unsigned 无符号型
struct 结构体,由具有相关性的若干成员数据组成,成员数据类型可不同,各自拥有各自的存储空间 union 联合体/共用体,由具有相关性的若干成员数据组成,成员数据类型可不同,成员数据公用一段存储空间
enum 枚举型,用于限定取值范围,其值为常量值 void 无类型/空,声明函数无返回值[void fun()]或无参数[fun(void)]或万能指针[fun(void*)可传递任何keixing]

1.2 数据存储相关关键字

关键字 意义与作用 关键字 意义与作用
static 静态存储,修饰数据,表示该数据为静态变量 extern 外部存储,修饰数据/函数,表示该数据/函数在其他位置已被定义
auto 自动存储,修饰数据,表示该数据为自动存储的临时变量 register 寄存器存储,修饰数据,表示该数据尽量存储在寄存器中
const 只读,修饰数据,表示该数据只读 volatile 易变,修饰数据,表示该变量可能被意想不到地改变,每次使用都必须且小心读取,防止编译器优化该变量

1.3 查看可执行程序所需空间——size

size project3_para.exe

黑马程序员——C语言基础教程笔记_第16张图片


2 常量与变量

    常量/变量名的格式:只能,“_”下划线,数字,字母,且不以数字开头,不能和关键字冲突;字母区分大小写。

2.1 申明常量示例

1.通过宏定义:
#define Pi 3.1415926
2.通过只读关键字定义
const double pi = 3.1415926;

2.2 声明变量示例

黑马程序员——C语言基础教程笔记_第17张图片

int a;            -->  申明整数变量a ,后续可如a=-10去使用
unsigned int b;   -->  申明正整数变量b ,后续可如b=10去使用
float c;          -->  申明单精度小数变量c ,后续可如c=10.126464去使用
double d;         -->  申明双精度小数变量d 

float x = 0.2f; //f表明小数

2.3 整型变量的定义和输出

    一个小的数据类型赋值给一个大的数据类型,不会出错,因为编译器会自动转化。但当一个大的类型赋值给一个小的数据类型,那么就可能丢失高位。
    1) 整型数据类型包括:

整型 占用空间 取值范围
short 2字节 有符号: -32768 ~ 32768 [-2^15 ~ 2^15] ;无符号:0~65535 [0 ~ (2^15)-1]
int 4字节(与操作系统有关) 有符号:-2147483648 ~ 2147483647 [-2^31 ~ (2^31)-1];无符号:0 ~ 4294967295 [0 ~ (2^32)-1]
long 4字节 有符号:-2147483648 ~ 2147483647 [-2^31 ~ (2^31)-1];无符号:0 ~ 4294967295 [0 ~ (2^32)-1]
long long 8字节 有符号:-2^63 ~ (2^63)-1;无符号: 0 ~ (2^64)-1

    2) 整型数据表现的形式有:

整型常量 意义
10 代表 int 类型的十进制数 10
10l / 10L 代表 long 类型的十进制数 10
10ll / 10LL 代表 long long 类型的十进制数 10
10u / 10U 代表 unsigned int 类型(无符号整型)的十进制数 10
10ul / 10UL 代表 unsigned long 类型(无符号长整型)的十进制数 10
10ull / 10ULL 代表 unsigned long long 类型(无符号长长整型)的十进制数 10
代码编写过程中,只有十进制/八进制/十六进制的体现
int a = 10;   // 十进制的10
int b = 082;  // 八进制的10
int c = 0xa;  // 十六进制的10
long d = 100l;

printf("%d",a);
printf("%d",b);
printf("%d",c);
printf("%ld",d)

    3) 打印输出整型数据:

占位符 含义
%d 输出一个有符号的十进制整型类型数据
%hd 输出一个有符号的十进制 short int 短整型类型数据
%ld 输出一个有符号的十进制 long int 短整型类型数据
%o 输出一个有符号的八进制整型类型数据
%x 输出一个有符号的十六进制整型类型数据,字母以小写形式
%X 输出一个有符号的十六进制整型类型数据,字母以大写形式
%u 输出一个无符号的十进制整型类型数据
printf("%d",a);   --> 打印整数a
printf("%f",b);   --> 打印单精度小数b
printf("%.2f",c); --> 保留2位小数,打印c
printf("%lf",d);  --> 打印双精度小数

2.4 字符型变量的定义和输出

    字符型变量用于存储一个单一字符,在 C 语言中用 char 表示,其中每个字符变量都会占用 1 个字节。在给字符型变量赋值时,需要用一对英文半角格式的单引号(’ ')把字符括起来。
    字符变量实际上并不是把该字符本身放到变量的内存单元中去,而是将该字符对应的 ASCII 编码放到变量的存储单元中。char的本质就是一个1字节大小的整型。

char a = 'x';
printf("a sizeof -> %d\r\n",sizeof(a));  打印查看a长度
printf("a print char -> %c\r\n",a);      打印查看a中字符
printf("a print ascii -> %d\r\n",a);     打印查看a中字符所对应的ascii码

char b;
scanf("%c",&b);  键盘输入一个字符赋值给b

2.4 实型(浮点型)变量的定义和输出

    实型变量也可以称为浮点型变量,浮点型变量是用来存储小数数值的。在C语言中, 浮点型变量分为两种: 单精度浮点数(float)、 双精度浮点数(double), 但是double型变量所表示的浮点数比 float 型变量更精确。

实型(浮点型) 占用空间 取值范围
float 4字节 7位有效数字(注意:不是指的小数后面几位,而是指的算上整数部分,有效数字一共7位)
double 8字节 15~16位有效数字(不是指的小数后面几位,而是指的算上整数部分,有效数字一共16位)

    由于浮点型变量是由有限的存储单元组成的,因此只能提供有限的有效数字。在有效位以外的数字将被舍去,这样可能会产生一些误差。

典型赋值:
float a = 3.141592;
double b = 3.1415926;

科学法赋值:
a = 3.2e3f;             f表示单精度浮点数
a = 2.2e-3f;
a = 3.1415926f;
printf("a = %f\r\n",a); 结果为3.141593 (7位有效数字)

2.5 字符串变量的定义和输出

    字符串是内存中一段连续的char空间,以’\0’(数字0)结尾;字符串常量是由双引号括起来的字符序列,如“china”、“C program”,“$12.5”等都是合法的字符串常量。
    !字符串常量与字符常量的不同:
在这里插入图片描述
每个字符串的结尾,编译器会自动的添加一个结束标志位’\0’,即 “a” 包含两个字符’a’和’\0’

char a = 'a';              定义字符变量
char b[20] = "abcdefg";    定义一个字符数组变量,存储字符串
printf("string b -> %s\r\n",b);

2.6 键盘输入scanf()和常用占位符%d等

/* ----------------------------------------------------------------------------------
	C for:

	anuthor:BinHeon https://blog.csdn.net/BinHeon
	date:   2020/09/14
	tips:
   ---------------------------------------------------------------------------------- */
// #pragma warning(disable:4996) // 屏蔽提示,从而正常使用scanf函数
#define _CRT_SECURE_NO_WARNINGS  // 屏蔽提示,从而正常使用scanf函数
#include    // 标准输入输出,其中有scanf和printf
#include   // 标准系统库,如system
// -----------------------------------   全局参数   ---------------------------------
// -----------------------------------     函数     ---------------------------------
// -----------------------------------     main     ---------------------------------
int main()
{	
	int weight;
	int price;
	scanf("%d %d", &weight, &price);
	printf("The weight is %d, the price is %d, the moneny is %d\r\n",weight,price,(weight*price));
//-----------------------------------------
	printf("%d", a);    -->  占位符%d 打印整数
	printf("%hd", a);   -->  打印短整型
	printf("%ld", a);   -->  打印长整形
	printf("%lld", a);  -->  打印长长整形
	printf("%f", a);    -->  打印单精度浮点型
	printf("%.2f", a);  -->  保留2位小数打印单精度浮点小数
	printf("%lf", a);   -->  打印双精度浮点小数
	printf("%c",a);     -->  打印字符
	printf("%s",a);     -->  打印字符串
	printf("%p",&a);    -->  查看a的地址

	return 0;
}
// -----------------------------------     end     ---------------------------------

2.7 ASCII表

在这里插入图片描述
黑马程序员——C语言基础教程笔记_第18张图片
黑马程序员——C语言基础教程笔记_第19张图片
黑马程序员——C语言基础教程笔记_第20张图片


3 进制转换

3.1 进制及其赋值

进制 表示
十进制 d 以正常数字1-9表示;如 123
八进制 o 以数字0开始,然后后面为数;如 0123
十六进制 hex 以0x开始,然后后面为数;如0x123
二进制 C语言中不能直接书写二进制数
/* ----------------------------------------------------------------------------------
	C for:

	anuthor:BinHeon https://blog.csdn.net/BinHeon
	date:   2020/09/14
	tips:
   ---------------------------------------------------------------------------------- */
// #pragma warning(disable:4996) // 屏蔽提示,从而正常使用scanf函数
#define _CRT_SECURE_NO_WARNINGS  // 屏蔽提示,从而正常使用scanf函数
#include    // 标准输入输出,其中有scanf和printf
#include   // 标准系统库,如system
// -----------------------------------   全局参数   ---------------------------------
// -----------------------------------     函数     ---------------------------------
// -----------------------------------     main     ---------------------------------
int main()
{	
	int a = 123;
	printf("十进制数:%d\r\n",a);
	
	int b = 0123;
	printf("八进制数:%o\r\n",b);
	
	int c = 0x123;
	printf("十六进制数:%x\r\n",c);
}

3.2 二进制与十进制

    1、十进制整数转换为二进制整数十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
    具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

黑马程序员——C语言基础教程笔记_第21张图片
    2、十进制小数转换为二进制采用"乘2取整,顺序排列"法。
    ①用2乘十进制小数,可以得到积,将积的整数部分取出
    ② 再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出
    ③重复操作,直到积中的小数部分为零,此时0或1为二进制的最后一位,或者达到所要求的精度为止

黑马程序员——C语言基础教程笔记_第22张图片

    3、二进制转十进制采用“权值法”。
黑马程序员——C语言基础教程笔记_第23张图片

3.3 二进制与八进制

    一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。一些编程语言中常常以数字0开始表明该数字是八进制。
    八进制的数和二进制数可以按位对应(八进制一位对应二进制三位)
黑马程序员——C语言基础教程笔记_第24张图片

3.4 二进制与十六进制

    十六进制(英文名称:Hexadecimal),同我们日常生活中的表示法不一样,它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9,A-F对应10-15。
    十六进制的数和二进制数可以按位对应(十六进制一位对应二进制四位)
黑马程序员——C语言基础教程笔记_第25张图片


4 内存数值存储方式

4.1 原码

    一个数的原码(原始的二进制码)有如下特点:
        ①最高位做为符号位,0表示正,为1表示负;
        ②其它数值部分就是数值本身绝对值的二进制数;
        ③负数的原码是在其绝对值的基础上,最高位变为1;
        ④原码不便于加减运算。

十进制数 原码
+15 0000 1111
-15 1000 1111

4.2 反码

    对于正数,反码与原码相同;对于负数,符号位不变,其它部分取反(1变0,0变1);反码也不便于加减运算。

十进制数 反码
+15 0000 1111
-15 (1000 1111)原码 -> (1111 0000)反码

4.3 补码

    补码特点:
        ①对于正数,原码、反码、补码相同;
        ②对于负数,其补码为它的反码加1;补码符号位不动,其他位求反,最后整个数加1,得到原码。

十进制数 反码
+15 0000 1111
-15 (1000 1111)原码 -> (1111 0000)反码 ->(1111 0001)补码

    在计算机系统中,数值一律用补码来存储,主要原因是:①统一了零的编码;②符号位可和其它位统一处理;③将减法运算转变为加法运算;且两个补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
    如:通过加法实现计算 9-6
原码:9-6=-15,结果不正确
在这里插入图片描述
补码:舍弃高位进位,9-6=3,结果正确

在这里插入图片描述



Day-3

1.数据类型

1.1 aa


2.数据类型

2.1 aa


3.数据类型

3.1 aa



Day-4

1.数据类型

1.1 aa


2.数据类型

2.1 aa


3.数据类型

3.1 aa



总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

你可能感兴趣的:(C,编程语言,c语言)