掘根宝典之C语言基本数据类型详解1——整型介绍,整数溢出,大小端,整型常量的存储,整型提升

目录

基本数据类型的介绍

类型的意义 

修饰符类型:

 整型数据类型

int:

short int(通常写short):

long int(通常写long):

long long(通常写long long):

char

使用多种整数类型的原因 

整型常量的存储

1.字面常量:

2.后缀:

3.字节顺序:

字符常量的存储 

整数溢出

有符号整数溢出:

无符号整数溢出:

位操作整数溢出

危险实例:

大小端

高低位

高低地址

区分高低地址和高低位

小端字节序存储(Little Endian):

大端字节序存储·(Big Endian):

为什么会有大小端?

如何确定大小端?

共用体确定大小端

指针确定大小端 


基本数据类型的介绍

C语言中常见的数据类型有:

  • int(整型):用于表示整数,例如:int a = 10;
  • float(浮点型):用于表示小数,例如:float b = 3.14;
  • char(字符型):用于表示单个字符,例如:char c = 'A';
  • double(双精度浮点型):用于表示较大范围和精度的小数,例如:double d = 3.1415926;
  • void(无类型):通常用于函数的返回值类型,表示无返回值。

类型的意义 

1.使用这个类型开辟内存空间的大小(大小决定了使用范围)

2.编译器如何看待这内存空间存了什么(比如说int,编译器就认为这里面存了整数)

修饰符类型:

  • short(短整型):用于表示较小范围的整数,例如:short e = 100;
  • long(长整型):用于表示较大范围的整数,例如:long f = 100000;
  • unsigned(无符号类型):用于表示非负数,例如:unsigned int g = 10;
  • signed(有符号类型):用于表示有正负号的整数,例如:signed int h = -10;

 整型数据类型

c语言把不含小数点和指数的数作为整数。因此

C语言中的整型数据类型包括int、short、long和long long,实际上还包括char

int:

大小:通常为4个字节,在32位系统中范围为-2,147,483,648(-2^31)到2,147,483,647(2^31-1)。

修饰符:signed(int默认为signed int)或unsigned。signed int  \  int可以表示正负整数,而unsigned int只能表示非负整数。

需要注意的是,int类型的大小可能会因为不同的编译器和操作系统而有所变化。因此,在编写程序时要考虑到这一点,以保证程序的可移植性。

short int(通常写short):

大小:通常为2个字节,在32位系统中范围为-32,768(-2^15到32,767。

修饰符:signed(short默认为signed short)或unsigned。signed short  \  short可以表示正负整数,而unsigned short只能表示非负整数。

long int(通常写long):

大小:通常为4个字节,在32位系统中范围与int相同,即-2,147,483,648到2,147,483,647。

修饰符:signed(long默认为signed long)或unsigned。

long long(通常写long long):

大小:通常为8个字节,在32位系统中范围为-9,223,372,036,854,775,808到9,223,372,036,854,775,807。

修饰符:signed(long long默认为signed long long)或unsigned。

注意:long至少要和int一样长,int至少要和short int一样长

char

C语言中的char用于存字符,但是从技术层面,char是整数类型。

char类型用于表示单个字符,本质是存储了该字符的ASCII码值(所以char也可以被视为整型,大小为-2^7到2^7-1)。它通常为1个字节大小。标准的ASCII码的范围是0-127,用char类型存储绰绰有余。

char类型可以用于表示字母、数字、标点符号和特殊字符等。每个字符都有一个对应的ASCII码值。

char ch; // 声明一个char变量
ch = 'A'; // 将字符常量赋值给变量
char ch = 'B'; // 声明并初始化char变量

char可以使用单引号将字符常量括起来。例如:'a'、'A'、'1'、'@'等。

char ch1 = 'A';
char ch2 = 'B';
int result = ch1 + ch2; // 字符相加,结果为整数

char类型还可以通过转义序列来表示特殊字符,如'\n'表示换行符,'\t'表示制表符。

char newline = '\n'; // 换行符
char tab = '\t'; // 制表符
char backslash = '\\'; // 反斜杠

char类型可以被赋值为整数,因为每个字符都有一个对应的ASCII码值。字符型变量也可以与整型变量进行运算。

char a=65;
printf("%c",a);//结果是A

需要注意的是,C语言中的char类型既可以被视为字符型数据类型,也可以被视为整型数据类型。这是因为char类型实际上是一个整数类型,它可以表示字符的ASCII码值。

#include <stdio.h>int main() {unsigned char d= 220;printf("%d",d);//结果是220return 0;}

实际上char也有signed char 和unsigned char,至于char是signed char 还是unsigned char,取决于编译器,因此我们需要将char变量控制在signed char和unsigned char的交集

使用多种整数类型的原因 

C语言提供了多种整数类型,主要是为了满足不同的需求和优化程序性能。下面是使用不同整数类型的一些常见原因:

  1. 空间优化:不同整数类型在存储空间上有不同的大小,选择合适的整数类型可以节省内存空间。例如,如果只需要存储0到255之间的整数,可以使用无符号字符型(unsigned char),它只需要1个字节的存储空间。

  2. 平台兼容性:不同的计算机体系结构和操作系统可能有不同的整数大小和范围限制。选择适当的整数类型可以保证程序在不同平台上的兼容性。

  3. 运算精度:某些类型的整数提供了更高的精度或更大的范围,以满足特定的数值计算需求。例如,长整型(long)提供了更大的范围,可以表示更大的整数值。

  4. 数据类型匹配:在处理某些特定数据或接口时,可能需要使用特定的整数类型以便与其他软件系统或硬件设备进行有效的数据交换。

  5. 优化性能:在某些情况下,使用较小的整数类型可以提高程序的性能。例如,使用无符号整数类型可以避免运行时的符号扩展操作,从而提高计算效率。

总之,选择适当的整数类型可以帮助提高程序的效率、节约内存,并保证程序的可移植性和兼容性。在选择整数类型时,需要根据具体的需求和特定的应用场景来做出合理的选择。

整型常量的存储

C语言中整数常量的存储方式取决于常量的值和类型。下面是一些常见的整数常量存储方式:

1.字面常量:

在源代码中直接写明的整数常量,如5、100、-10等,存储方式通常是根据常量的值和类型决定的。c语言把大多数整型常量视为int类型,但是非常大的整数除外。如果程序中使用的数字(比如2345)超过int的大小范围,编译器会尝试使用unsigned int,如果还不够大,编译器将会依次使用long,unsigned long,long long和unsigned long long类型(前提是编译器能识别这些类型)

我们不免会在程序中使用整数常量,就像下面一样

1111111111111   /*编译器先将这个数存为int,发现不够大,
改存为unsigned int,发现还不够大,依次类推到unsigned long long,
直到能存下这个数的类型为止*/
int a=10000000000000;//编译器先把这个数转化为二进制,然后交付给int类型的时候,直接截断

2.后缀:

整数常量的存储方式还可以通过使用后缀来指定具体的类型。

常见的后缀包括u或者U表示无符号整数、l或者L表示长整数,ll或者LL表示长长整数。例如,常量10u表示无符号整数类型的10,常量1000000000l表示长整数类型的1000000000。

3.字节顺序:

对于占据多个字节的整数常量,存储方式还与字节顺序有关。通常采用的是小端字节顺序,即低位字节存储在低地址,高位字节存储在高地址。

我们后面会介绍

总之,整数常量的存储方式取决于常量的值和类型。编译器会根据常量的大小和后缀来选择合适的整数类型进行存储,同时也会根据字节顺序来存储多字节的整数常量。

字符常量的存储 

在c语言中,用单括号括起来的单个字符被称为字符常量。编译器一旦发现字符常量,就会将其转换未相应的ASCII码值并存储起来

整形提升

C语言中的整型提升是指在表达式中使用不同类型的整数时,会自动将较低精度的整数类型转换为较高精度的整数类型。

整型提升的规则如下:
1. 如果操作数中存在有符号和无符号整数,那么有符号整数会自动转换为无符号整数进行运算。
2. 如果操作数中存在不同大小的整数类型,那么小的整数类型会自动转换为大的整数类型进行运算。
3. 如果操作数中存在有符号整数和浮点数,那么有符号整数会自动转换为浮点数进行运算。
4. 如果操作数中存在不同大小的浮点数类型,那么小的浮点数类型会自动转换为大的浮点数类型进行运算。

整型提升的目的是为了避免数据丢失和提高运算精度。需要注意的是,整型提升只发生在运算符和赋值语句中,不会改变变量的类型。如果想要将提升后的整数类型赋值给原来的整数类型变量,需要进行强制类型转换。

例如,将一个signed char类型和一个int类型相加:

signed char a = 10;
int b = 20;
int c = a + b;

在这个例子中,signed char类型会被自动提升为int类型,然后进行相加运算。

整形提升可以避免数据丢失和不一致的问题,确保运算结果的正确性。但是需要注意的是,整形提升并不改变变量的实际类型,只是在表达式中临时提升为更高精度的类型。

整数溢出

我们知道每种数据类型都是有它的取值范围的,int的取值范围是-2^31到2^31-1,那如果我们用int类型存一个超出这个范围的值会怎么样呢?

下面是一些展示C语言整数溢出的示例:

有符号整数溢出:

#include <stdio.h>int main() {int num = 2147483647;  // int类型最大值num = num + 1;  // 整数溢出printf("溢出后的值:%d\n", num);return 0;
}

输出结果: 溢出后的值:-2147483648

由于num已经达到了int类型的最大值,再加1就超过了它的表示范围,导致整数溢出。溢出后的值变成了-2147483648,即int类型的最小值。

事实上c标准没有定义有符号类型的溢出规则,以上描述的溢出行为比较具有代表性,但是也会出现其他情况

无符号整数溢出:

#include <stdio.h>int main() {unsigned int num = 4294967295;  // unsigned int类型最大值num = num + 1;  // 无符号整数溢出printf("溢出后的值:%u\n", num);return 0;
}

输出结果: 溢出后的值:0

由于num已经达到了unsigned int类型的最大值,再加1就超过了它的表示范围,导致整数溢出。由于unsigned int类型没有负数表示,溢出后的值变成了0。

位操作整数溢出

下面是一个在位操作中导致整数溢出的例子:

#include <stdio.h>int main() {unsigned int a = 1;unsigned int b = a << 32;  // 左移32位printf("b: %u\n", b);return 0;
}

在这个例子中,我们定义了一个无符号整数变量a,并将其左移32位赋值给变量b。根据C语言标准,对于一个32位的无符号整数,左移32位将导致整数溢出,结果是未定义的。

实际运行该程序时,输出结果可能是任意的,因为溢出后的行为是未定义的。在某些编译器上,可能会得到期望的结果0,但在其他编译器上,可能会得到不同的结果。这种结果的不确定性是因为溢出后的行为是未定义的,编译器可以自由选择溢出后的行为。因此,在位操作中使用正确的数据类型以及进行边界检查是非常重要的,以避免产生不确定的行为和潜在的错误。

危险实例:

#include <stdio.h>int main() {unsigned char num ; for(num=0;num<=255;num++)printf("%u\n", num);return 0;
}

我们会发现上面这个例子已经陷入了死循环

由于unsigned char类型的范围是0-255,在num为255的情况下加1会导致循环溢出,使得num的值变为0。

C语言中整数溢出的情况:

  1. 有符号整数溢出导致的未定义行为:当有符号整数溢出时,C语言标准规定这种情况会导致未定义行为。这意味着编译器不需要定义溢出后的行为,可能会产生任意的结果。例如,对于有符号整数类型int,当将其最大值加1时,它可能变成最小值,也可能导致未定义行为。

  2. 无符号整数溢出的模运算特性:对于无符号整数类型,溢出时会采用模运算的特性。例如,使用unsigned int类型,该类型的取值范围为0到4294967295。当达到最大值4294967295并再加1时,它将经过模运算,结果是0。这意味着溢出后的值将回到类型的最小值。

  3. 位操作中的整数溢出:在进行位操作时,如果操作数超过了数据类型的位宽度,会发生整数溢出。例如,对于unsigned int类型,其位宽度为32位。如果将其左移33位,将会发生整数溢出,结果是未定义的。

总体来说,C语言中的整数溢出是一个需要注意的问题。在编写代码时,应该特别关注使用有符号整数的情况,以及对无符号整数进行位操作的情况。为了避免整数溢出,应该合理选择适当的数据类型,并进行边界检查。

大小端

C语言中的大小端(Endianness)指的是字节顺序的不同方式,即如何将多字节的数据类型(如整数、浮点数)在内存中存储。

高低位

先来了解数字的高低位

0x12345678

越靠近1这边的位就叫高位,越靠近8那边的位叫低位

高低地址

什么是高地址,什么是低地址,举举例说明?
可以把主存看成一本空白的作业本,你现在要在笔记本上记录一些内容,他的页码排序是
第一页 : 0x0000001
第二页 : 0x0000002

最后一页: 0x0000092
1 如果你选择从前向后记录(用完第一页,用第二页,类推)这就是先使用低地址,后使用高地址.
0x0000001 -> 0x0000002-> … -> 0x0000092
业内有这样表述:动态分配内存时堆空间向高地址增长,说的就是这种情况.
这个向高地址增长就是先使用低地址,后使用高地址的意思.
2 如果你选择从后往前记录(先用笔记本的最后一页,用完后使用倒数第二页,类推) 这就是先使用高地址,后使用低地址
0x0000092 -> … ->0x0000002 -> 0x0000001
业内表述:0xbfac 5000-0xbfad a000是栈空间,其中高地址的部分保存着进程的环境变量和命令行参数,低地址的部分保存函数栈帧,栈空间是向低地址增长的.
这个向低地址增长就是先使用高地址,后使用低地址的意思.

区分高低地址和高低位

高地址低地址容易与高位低位产生混淆.
比如我这个月工资为1234(一千二百叁拾肆块),那么这串数字的左边我们称呼为高位,右边称为低位.
(这个高低来自于人类的阅读习惯,数字从左向右,表示由大到小)
在计算机中以int类型存储工资,假设int占用四个字节,每个字节地址如下
0x00008
0x00009
0x0000a
0x0000b
把工资加载到内存中时,就会有两种存储方式,如下:
// 大端法
0x00008 => 1
0x00009 => 2
0x0000a => 3
0x0000b => 4
或者
// 小端法
0x00008 => 4
0x00009 => 3
0x0000a => 2
0x0000b => 1
内存中的低地址存储工资中的高位这种方式称为大端法.如果把上边的存储方式反过来,内存中的高地址存储工资中的高位,则称为小端法 little endian.
(注释:可以采用异或方法来记忆 低地址存低位为小端法-> 弟弟小 O-O).
主机采用大端还是小端表示数据由CPU的架构决定,如果两个主机只见交互数据,但是字节序表示不同,需要同化.

小端字节序存储(Little Endian):

在小端字节序中,最低有效字节存储在最低地址,最高有效字节存储在最高地址。例如,整数值0x12345678在内存中的存储方式如下:

低地址 ─────> 高地址
78 56 34 12

这种字节顺序在x86架构的计算机上被广泛使用,包括大部分的个人电脑和服务器。

大端字节序存储·(Big Endian):

在大端字节序中,最高有效字节存储在最低地址,最低有效字节存储在最高地址。例如,整数值0x12345678在内存中的存储方式如下:

低地址 ─────> 高地址
12 34 56 78

这种字节顺序在一些嵌入式系统和网络协议中使用较多。

为什么会有大小端?

        简单点说就是硬件厂商各有所好,并没有统一的约定制作制作哪一个,大端的优势在于第一个字节就是高位,很容易判断正负性。小端的优势在于第一个字节是低位,最后一个字节是高位,可以依次取出相应的字节进行运算,并且最终会把符号位刷新,这样运算起来更高效。

如何确定大小端?

        当我们不知道当前换将是大端存储还是小端存储的时候,就需要用代码来确定当前环境的大小端,下面给出了两种确定大小端的方式:

共用体确定大小端

        共用体里面的变量是公用一块空间的,int a = 0x11 22 33 44占据了四个字节,假设是小端第一个字存的就是数据的低位0x44 ,char c只占据了第一个字节

 
int IsSmallEnd1()
{union U u;u.a = 0x11223344;if (u.c == 0x44) {return 1;}elsereturn 0;
}int main()
{int i = IsSmallEnd1();if (i == 1){printf("小端模式\n");}else{printf("大端模式\n");}return 0;
}


指针确定大小端 

        强制类型转换会发生截取,下面用char*强制类型转换,截取了第一个字节的地址,然后解引用读取了第一个字节的数据。

int IsSmallEnd2()
{int i = 0x11223344;i = 0x11223344;if (*(char*)(&i) == 0x44){return 1;}elsereturn 0;
}int main()
{int i = IsSmallEnd2();if (i == 1){printf("小端模式\n");}else{printf("大端模式\n");}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/702256.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C/C++暴力/枚举/穷举题目持续更新(刷蓝桥杯基础题的进!)

目录 前言 一、百钱买百鸡 二、百元兑钞 三、门牌号码&#xff08;蓝桥杯真题&#xff09; 四、相乘&#xff08;蓝桥杯真题&#xff09; 五、卡片拼数字&#xff08;蓝桥杯真题&#xff09; 六、货物摆放&#xff08;蓝桥杯真题&#xff09; 七、最短路径&#xff08;蓝…

图解目标检测 之 【YOLOv9】 算法 最全原理详解

YOLOv9与SOTA模型对比 什么是 YOLOv9&#xff1f;YOLOv9是YOLO系列中的最新产品&#xff0c;是一种实时目标检测模型。它通过先进的深度学习技术和架构设计&#xff0c;包括通用 ELAN (GELAN) 和可编程梯度信息 (PGI)&#xff0c;展现出更好的性能。 YOLO 系列通过引入计算机视…

Java/Python/Go不同开发语言基础数据结构和相关操作总结-GC篇

Java/Python/Go不同开发语言基础数据结构和相关操作总结 1. 常见gc方式1.1 gc判断对象是否存活1.2 引用计数法1.2 标记-清除算法1.3 复制算法1.4 标记-压缩算法1.5 分代收集算法 2. java的gc方式以及垃圾回收器2.1 gc方式2.1 gc回收器2.1.1 Serial收集器2.1.2 ParNew收集器2.1.…

防御第六次作业-笔记整理

目录 DPI DFI 签名 AV URL过滤 HTTPS过滤 文件内容过滤 VPN概述 密码学 对称加密 非对称加密 HASH运算 DPI DPI --- 深度包检测技术 --- 主要针对完整的数据包&#xff08;数据包分片&#xff0c;分段需要重组&#xff09;&#xff0c;之后对数据包的内容进行识别。…

Socket、UDP、TCP协议和简单实现基于UDP的客户端服务端

目录 Socket TCP和UDP区别 UDP&#xff1a;无连接&#xff0c;不可靠传输&#xff0c;面向数据报&#xff0c;全双工 TCP&#xff1a;有连接&#xff0c;可靠传输&#xff0c;面向字节流&#xff0c;全双工 无连接和有连接 可靠传输和不可靠传输 面向数据报和面向字节流…

学习或从事鸿蒙开发工作,有学历要求吗?

目前安卓有2,000万的开发者。本科及以上学历占比为35%&#xff1b;iOS有2,400万开发者&#xff0c;本科及以上学历占比为40% 绝大多数的前端开发者都是大专及以下学历&#xff0c;在2023年华为开发者大会上余承东透露华为的开发者目前有200万&#xff0c;但鸿蒙开发者统计的数据…

C#,数组数据波形排序(Sort in Wave Form)的朴素算法与源代码

1 波形排序 所谓“波形排序”就是一大一小。 将n个身高互不相同的人排成一行 ,对于每个人 ,要求他要么比相邻的人均高 ,要么比相邻的人均矮 ,问共有多少种排法 ,这一问题称为波形排列问题。 2 源程序 using System; using System.Collections; using System.Collections.Gen…

[嵌入式系统-33]:RT-Thread -18- 新手指南:三种不同的版本、三阶段学习路径

目录 前言&#xff1a;学习路径&#xff1a;入门学习-》进阶段学习》应用开发 一、RT-Thread版本 1.1 标准版 1.2 Nano 1.3 Smart版本 1.4 初学者制定学习路线 1.5 RT-Thread在线文档中心目录结构 1.6 学习和使用RT-Thread的三种场景 二、入门学习阶段&#xff1a;内…

Java SDK下沉:解决SDK治理痛点

痛点难点 在每个java应用中,都会存在各种各样的SDK,随着时间流逝和技术的迭代,SDK也需要进行相应的版本更新,在大型微服务系统中,动辄几百上千个应用,要推动这个数量级的应用进行SDK升级或者覆盖接入,消耗的成本是巨大的,这也是微服务治理的一大难点。 那么这个难点如…

信息系统项目管理师论文分享(质量管理)

水一篇文章。我发现身边考高项的朋友很多都是论文没过&#xff0c;我想着那就把我的论文分享出来&#xff0c;希望能有帮助。 质量管理 摘要 2020年5月&#xff0c;我作为项目经理参加了“某市某医联体的互联网诊疗&#xff08;互联网医院和远程医疗&#xff09;平台”的建设…

编程的基础:理解时间和空间复杂度

编程的基础&#xff1a;理解时间和空间复杂度 时间复杂度空间复杂度示例常数时间复杂度 O(1)线性时间复杂度 O(n)线性对数时间复杂度 O(n log n)二次时间复杂度 O(n^2)指数时间复杂度 O(2^n) 空间复杂度示例常数空间复杂度 O(1)线性空间复杂度 O(n)线性对数空间复杂度 O(log n)…

apache 模式、优化、功能 与 nginx优化、应用

一、I/O模型——Input/Output模型 1.同步/异步 A程序需要调用B程序的某一个功能&#xff0c;A发送一个请求需要B完成一个任务 同步&#xff1a;B不会主动去通知A是否完成需要A自己去问 异步&#xff1a;B会主动通知A是否完成 2.阻塞/非阻塞 A发送一个请求需要B完成一个任务 …

springboot接收base64文件并上传

1. 前言 在常见的开发场景中&#xff0c;前端往往对文件进行base64编码&#xff0c;采用 json 格式发送给后端&#xff0c;后端收到 base64文件的字符串后进行保存 实现步骤&#xff1a;后端直接通过 Base64工具类对字符串进行解码&#xff0c;解码后获取字节数组。将字节数组…

Vision Mamba:使用双向状态空间模型进行高效视觉表示学习

模型效果 将DeiT和Vim模型之间的性能和效率比较&#xff0c;为了进行准确性比较&#xff0c;我们首先在IN1K分类数据集上预训练DeiT和Vim&#xff0c;然后在不同的下游密集预测任务上微调通用主干&#xff0c;即&#xff0c;语义分割、目标检测、实例分割。结果表明&#xff0c…

Maven 私服 Nexus3

一、Maven和Nexus3 简介 Maven是一个采用纯Java编写的开源项目管理工具&#xff0c;采用一种被称之为Project Object Model(POM)概念来管理项目&#xff0c;所有的项目配置信息都被定义在一个叫做POM.xml的文件中, 通过该文件Maven可以管理项目的整个生命周期&#xff0c;包括…

2024年危险化学品经营单位主要负责人证考试题库及危险化学品经营单位主要负责人试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年危险化学品经营单位主要负责人证考试题库及危险化学品经营单位主要负责人试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特…

Ubuntu22.04和Windows10双系统安装

概要 本篇演示Ubuntu22.04和Windows10双系统的安装。先安装Ubuntu22.04&#xff0c;再安装Windows10。 一、说明 1、电脑 笔者的电脑品牌是acer(宏碁/宏基) 电脑开机按F2进入BIOS 电脑开机按F12进入Boot Manager 2、U盘启动盘 需要用到两个U盘启动盘 &#xff08;1&a…

23.openeuler OECA认证模拟题6

单选 1.openEuler系统中,下列选项中用于查看每个硬盘分区的inode总数和已经使用的数量的是() B A、ls -a B、df -i C、ls -r D、ls -t 2、openEuler系统中,执行下列哪条命令可以将前台正在执行的任务放到后台并暂停?C A、Crtl+c B、Crtl+D C、Crtl+z D、Crtl+s

市场复盘总结 20240223

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 一支股票 10%的时候可以操作&#xff0c; 90%的时间适合空仓等待 二进三&#xff1a; 进级率中 57% 最常用的…

牛客周赛 Round 33 解题报告 | 珂学家 | 思维场

前言 整体评价 感觉这场更偏思维&#xff0c;F题毫无思路&#xff0c;但是可以模拟骗点分, E题是dij最短路. A. 小红的单词整理 类型: 签到 w1,w2 input().split() print (w2) print (w1)B. 小红煮汤圆 思路: 模拟 可以从拆包的角度去构建模拟 注意拆一包&#xff0c;可以…