C++ 与基本数据类型:整型、布尔型与字符型

news2024/9/29 7:16:13

文章目录

  • 参考
  • 描述
  • 数据类型
      • 基本数据类型与复合数据类型
      • 静态数据类型
  • 整形数据类型
      • 有符号整型数据类型
      • 无符号整型数据类型
      • 符号位
  • 最少内存空间
      • 概念
      • 确定大小
          • sizeof 运算符
  • 进制
      • C++ 中的不同进制数值表示
      • cout 与进制转化
          • 影响范围
          • 二进制
  • 后缀
      • 字面量
      • 整型字面量的默认数据类型
      • 主动权
      • 整型数据类型 short
  • 溢出
  • 布尔型数据类型
      • 概念
      • true 与 false
      • 过程判断
  • 字符型数据类型
      • 概念
      • ASCII 编码
      • 存储的是字符还是数值?
      • 数值而不是字符
      • signed char 与 unsigned char
      • 空字符型字面量

参考

项目描述
搜索引擎BingGoogle
AI 大模型文心一言通义千问讯飞星火认知大模型ChatGPT
菜鸟教程数据类型
C++ Primer Plus (第六版)中文版史蒂芬·普拉达 / 张海龙,袁国忠 译
精通C++(第九版)ISBN:9787302503163
黑马程序员C++
CPlusPlusReference

描述

项目描述
操作系统Windows 10 专业版
编辑器VSCode
编译器g++.exe (x86_64-win32-seh-rev1, Built by MinGW-Builds project) 13.1.0

数据类型

数据类型用于确定变量存储的 数据所占用的内存空间大小和支持的操作。数据类型分为基本数据类型和复合数据类型两大类。

基本数据类型与复合数据类型

基本数据类型

基本数据类型是编程语言中的原始数据类型,通常由编程语言提供,用于存储 单一的简单的 数据值。

复合数据类型

复合数据类型用于 组合多个基本数据类型或其他复合数据类型,以创建更为复杂的数据结构。复合数据类型使程序能够组织和操作多个不同的数据元素。

静态数据类型

数据类型在 C++ 中是 静态类型,这意味着 在变量声明时必须指定其数据类型,编译器在编译时会检查 类型一致性,从而提高了代码的稳定性和安全性。选择适当的数据类型对于编写 高效、可读性强 的代码非常重要,因为它会影响变量的内存空间占用、运行速度以及程序的正确性。

整形数据类型

C++ 中的整型数据类型用于存储整数值,这些值可以是 正数负数。整型数据类型可以分为 两大类,即有符号整型数据类型与无符号整型数据类型。

有符号整型数据类型

有符号整型数据类型能够用于存储 正数负数。如果您需要存储的整型数据需要使用到 负数,那么请使用有符号整型数据类型。

项目大小范围数量级
short、signed short、short int 、signed short int两个字节-32,728 ~ 32,727
int、signed四个字节-2,147,483,648 ~ 2,147,483,647十亿
long、signed long、long int、signed long intWindows 占用四个字节;Linux32 位 系统占用四个字节,64 位 系统占用八个字节-2,147,483,648 ~ 2,147,483,647十亿
long long、signed long long、long long int、singned long long int八个字节-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807百亿亿

注:

有符号整型数据类型中的各个 子类型 均存在 多个名称,您可以使用某一子类型中的某一名称来表示该子类型。

无符号整型数据类型

无符号整型数据类型用于存储 正数。如果您需要存储的整型数据不需要使用到 负数,那么请您使用无符号整型数据类型。

项目大小范围数量级
unsigned short、unsigned short int两个字节0 ~ 65,535
unsigned、unsigned int四个字节0 ~ 4,294,967,295十亿
unsigned long、unsigned long intWindows 占用四个字节;Linux32 位 系统占用四个字节,64 位 系统占用八个字节0 ~ 4,294,967,295十亿
unsigned long long、unsigned long long int八个字节0 ~ 18,446,744,073,709,551,615千亿亿

符号位

有符号整型数据类型 需要使用一个二进制位作为符号位符号位用于 表示该整型数值是负数还是非负数。无符号整型数据类型仅用于表示 非负数,故不需要使用到符号位。因此,同样位数的无符号整数具有 更大的正数表示范围,但它不能用于表示负数。

最少内存空间

概念

在不同的 C++ 实现中,不同的数据类型所占用的内存空间是不同的,这可能会导致混乱。C++ 提供了一种灵活的标准,该标准确保了不同数据类型所占用的最小内存空间:

  1. short 数据类型所占据的内存空间至少为 两个字节
  2. int 至少与 short 数据类型所占据的内存空间相同。
  3. long 数据类型所占据的内存空间至少为 四个字节,且至少与 int 数据类型所占据的内存空间相同。
  4. long long 数据类型至少为 八个字节,且至少与 long 数据类型所占据的内存空间相同。

确定大小

不同数据类型所占用内存空间的实际大小可能会因不同的系统和编译器而异。如果您需要计算在您所使用的环境中,各数据类型实际占用的内存空间大小是多少?那么您可以考虑考虑 sizeof 运算符。

sizeof 运算符

sizeof 运算符是C++中用于 确定变量或数据类型占用的内存空间大小 的运算符 (以字节为单位,一字节包含八个二进制位)。你可以通过编写简单的代码来确定在你的系统上各种数据类型所占用的空间大小。对此,请参考如下示例:

// 导入 C++ 头文件 iostream 以实现对流的处理
#include <iostream>
// 使用标准命名空间
using namespace std;


int main () {
    cout << "Short Int\t" << sizeof(short) << endl;
    cout << "Int\t\t" << sizeof(int) << endl;
    cout << "Long Int\t" << sizeof(long) << endl;
    cout << "Long Long Int\t" << sizeof(long long) << endl;
    
    // 确保程序执行完毕后不会退出
    system("pause");
    return 0;
}

执行结果

Short Int       2
Int             4
Long Int        4
Long Long Int   8
请按任意键继续. . .

注:

sizeof 是 C++ 中提供的运算符,用 括号将操作数包裹的操作并不是必须的。但在 sizeof 运算符的操作对象为 数据类型 时,则必须将其进行包裹。否则,C++ 将抛出异常。

进制

C++ 中的不同进制数值表示

C++ 允许您使用四种种方式来表示整数。具体如下:

  1. 若数值以 0 为前缀 ,则该整数将被视为 八进制 数值。
  2. 若数值以 0X0x 为前缀,则该整数将被视为 十六进制 数值。
  3. 若数值以 0B0b 为前缀,则该整数将被视为 二进制 数值。
  4. 除上述情况外的其他整数都将被视为十进制数值。

举个栗子

#include <iostream>
using namespace std;


int main () {
    //  十进制数值
    cout << 66 << endl;
    // 十六进制数值
    cout << 0X66 << endl;
    cout << 0X2F << endl;
    // 八进制数值 
    cout << 066 << endl;
    // 二进制数值
    cout << 0b1001 << endl;
    
    system("pause");
    return 0;
}

执行结果

66
102
47
54
9
请按任意键继续. . .

注:

  1. 在八进制数值中,数值的每一位仅允许是 0 ~ 7 范围中的数值。例如 0982 就是一个错误的八进制数值。
  2. 在十六进制数值中,数值的每一位仅允许是 0 ~ 9a ~ fA ~ F 范围中的数值。例如,0X89D 就是一个错误的十六进制数值。
  3. 在十进制中,数值的每一位仅允许是 0 ~ 9 范围中的数值。例如,10a 就是一个错误的十进制数值。

cout 与进制转化

在使用 cout 将数值输出至终端中时,其他进制的数值都将被转化为十进制数值后输出。
如果您希望 cout 将数值转换为指定进制的数值后在执行窗口中输出,那么你可以使用 hexdecoct 关键字用以将数值分别转换为十六进制、十进制及八进制数值后在执行窗口中输出。

举个栗子

#include <iostream>
using namespace std;


int main () {
    // 将十进制数值转化为十六进制后输出至终端中
    cout << hex << 36 << endl;
    // 将十进制数值转化为八进制数值后输出至终端中
    cout << oct << 36 << endl;
    // 将十进制数值原样输出
    cout << dec << 36 << endl;
    
    system("pause");
    return 0;
}

执行效果

24
44
36
请按任意键继续. . .
影响范围

C++ 提供 octhex 关键字来将十进制数值转化为指定进制数值后进行输出我们都能够理解,可为什么还需要提供 dec 关键字来将十进制数值以十进制格式进行输出呢?这不是 cout 的默认行为吗?
原来,在 cout 语句中使用 decocthex 关键字后,后续的 cout 语句都将被影响,而使用 dec 关键字则能够使得 cout 恢复默认行为。对此,请参考如下示例:

#include <iostream>
using namespace std;


int main () {
    // 在下述 cout 语句中,实际发挥作用的是 hex 而不是 oct 关键字。
    // 因此,后续 cout 语句都将被 hex 关键字影响。
    cout << oct << hex << 15 << endl;
    cout << 15 << endl;
    // 通过 dec 关键字恢复 cout 的默认行为
    cout << dec;
    cout << 15 << endl;
    
    system("pause");
    return 0;
}

执行效果

f
f
15
请按任意键继续. . .
二进制

C++ 标准库没有直接提供用于 cout 的二进制输出控制符,但您可以编写一个函数或使用其他方法将整数转换为二进制字符串,然后通过 cout 进行输出。

后缀

字面量

字面量是在程序中 直接使用的数据值,而 不需要任何计算或存储操作。字面量可以是整数、浮点数、字符、字符串或其他数据类型的常数值。

42 // 整数字面量
3.14 // 浮点数字面量
'A' // 字符字面量
"Hello, World!" // 字符串

整型字面量的默认数据类型

C++ 中,并不是只有变量有其数据类型,字面量也是有其所属的数据类型的。整型字面量使用的默认数据类型为 signed int,我们可以通过如下代码进行验证。

#include <iostream>
using namespace std;


int main(){
    cout << sizeof 12 << endl;
    // usigned int 类型所能够表示的最大数值为 4,294,967,295
    cout << sizeof 4294967295 << endl;
    system("pause");
}

执行结果

sizeof 运算符的结果为 4 表明操作数所属的数据类型为 signed intunsigned int,那么究竟哪个才是 C++ 默认使用的数据类型呢?
为此,我们将 sizeof 的操作数设置为 4294967295,这个数值是无符号 int 类型所能够表示的最大数值。sizeof 4294967295 的输出结果为 8,则表明该整型字面量使用的不是 int 数据类型。故准确来说,整型字面量数据默认使用的数据类型是 signed int

4
8
请按任意键继续. . .

注:

在字面量数值的大小超出了 int 所能表示的范围时,C++ 将从其它整型数据类型中选择 尽可能小(C++ 并不因此为整型字面量使用无符号数据类型)且合适 的数据类型作为该整型字面量的数据类型。

主动权

除了让 C++ 为整型字面量分配合适的数据类型外,我们也可以 通过在字面量中添加后缀来指定该字面量使用的数据类型。C++ 支持的整型数据类型的后缀有:

项目后缀
longlL
unsigned longulul 的顺序可以发生变换且两者的大小写形式不被限制)
long longllLL
unsigned long longullUlluLLULL
无符号整型数据类型uU

举个栗子

#include <iostream>
using namespace std;


int main() {
    // 4294967295 是 unsigned int 所能够表示的最大数值
    cout << sizeof 4294967295U << endl;
    // 4294967296U 由于超出了 unsigned int 
    // 所能够表示的最大数值,故使用 usigned long long
    cout << sizeof 4294967296U << endl;
    // 在不添加 u 或 U 后缀时,C++ 默认为这些
    // 字面量使用有符号整型数据类型。
    cout << sizeof 4294967295 << endl;

    system("pause");
    return 0;
}

执行效果

4
8
8
请按任意键继续. . .

整型数据类型 short

在 C++ 中,即使整型字面量的取值范围在 short 类型所支持的范围之内,该字面量也将使用 signed int 而不是 signed short 作为该字面量的数据类型。并且,C++ 中也没有为整型数据类型 short 提供相应的后缀。但我们可以通过 static_cast 进行不同数据类型之间的转化。对此,请参考如下示例:

#include <iostream>
using namespace std;


int main() {
    cout << sizeof 1 << endl;
    // 通过 static_cast 将字面量的数据类型转化为 short
    cout << sizeof static_cast<short>(1) << endl;

    system("pause");
    return 0;
}

执行效果

4
2
请按任意键继续. . .

溢出

在某一数据类型的数据 超出了该数据类型所支持的范围时,变量值将 跳转到范围的另一端并在此基础上继续计算。对于整型数据类型而言,可能发生如下情况:

  1. 有符号整型溢出
    int 类型举例。当 int 类型的整型数值 增加到其上限并继续增加时,它可能会变为 该类型所支持的最小值并以此为基础继续进行计数。当 int 类型的整型数值 减少到其下限并继续减少时,它可能会变为 该类型所支持的最大值并以此为基础继续进行计数

  2. 无符号整型溢出
    当无符号整型数值增加到其所属的数据类型所支持的上限并继续增加时,它会 回绕到数值 0,并 以此为基础继续进行计数。当其值减少到 0 并继续减少时,它会回绕到该类型的最大值。

举个栗子

#include <iostream>
using namespace std;


int main() {
    // signed short 数据类型所支持的最大值
    short span_max = 32767;
    // unsigned short 数据类型所支持的最小值
    short span_min = -32768; 
    
    span_max += 7;
    span_min -= 10;
    
    cout << span_max << endl;
    cout << span_min << endl;
    
    system("pause");
    return 0;
}

执行结果

-32762
32758
请按任意键继续. . .

布尔型数据类型

概念

ANSI/ISO C++ 标准开始支持 布尔类型布尔 这个名称来源于英国数学家 George Boole ,是他开发了逻辑率的数学表示法。在计算中,布尔变量的值可以是 truefalse ,分别代表了

拓展

  1. C99 之前,C语言 的标准没有提供布尔类型,但是这不意味着 C 语言不能表示布尔值的概念。C 中的所有 布尔运算符(&&、|| 等) 以及条件语句(if、While 等)都以非零值代表真,零值代表假。
  2. C++ 支持布尔类型前C++C 一般,将 0 解释为 false,将 非 0 值 解释为 true。但在 C++ 支持布尔类型后,你也仍可以使用 0 来代替 false 或是使用 非 0 值 来代替 true 在条件语句发挥作用。

true 与 false

在 C++ 中,关键字 truefalse 分别可以看作是存储了 10 的变量。

举个栗子

#include <iostream>
using namespace std;


int main() {
    cout << true << endl;
    cout << false << endl;
    
    system("pause");
    return 0;
}

执行结果

1
0
请按任意键继续. . .

过程判断

布尔类型通常作为 判断一个表达式是否正确的结果,若表达式正确则布尔运算的结果为 true ,若表达式错误则布尔运算的结果为 false

举个栗子

#include <iostream>
using namespace std;


int main() {
    bool result = 3 < 1;

    // 括号用于提升表达式的优先级,
    // 防止 C++ 被迷惑导致异常产生。
    cout << (3 > 1) << endl;
    cout << result << endl;

    system("pause");
    return 0;
}

执行结果

1
0
请按任意键继续. . .

字符型数据类型

概念

C++ 中,字符型变量用于存储字符。您可以使用 char 关键字声明一个字符型变量,使用 char 关键字创建的变量将占用一个字节的内存空间。

注:

  1. 字符需要使用单引号包裹,若使用双引号,C++ 将抛出错误。
  2. 字符型变量仅能包含单个字符,但转移字符除外,因为一个转义字符需要使用两个字符来进行表示。例如:\n\t

ASCII 编码

ASCII(American Standard Code for Information Interchange) 是一种字符编码标准,用于 将文本字符映射到数值ASCII 最早🤞在计算机领域中广泛使用,它定义了 128 个不同的字符,包括 控制字符(如换行和回车) 以及 可打印字符(如字母、数字、标点符号等)。ASCII 定义的每个字符都被分配了一个 唯一的整数值,范围从 0127

注:

世界上存在许多的编码方案,但这些方案大多是 基于 ASCII 编码进行扩展的🌹,因此 ASCII 编码也被认为是 字符编码的基础

存储的是字符还是数值?

C++ 中,使用 char 类型的变量存储某一字符时,存储的不是字符本身而是该字符对应的 ASCII 编码值。我们可以通过如下代码对此进行验证:

#include <iostream>
using namespace std;


int main() {
    char letter = 'a';
    cout << letter << endl;
    cout << letter + 1 << endl;

    system("pause");
    return 0;
}

执行效果

a
98
请按任意键继续. . .

上述示例的执行结果表明了如下两点事实:

  1. 存储在 letter 字符类型的变量中的数据 能够与数值进行运算
  2. 通过 cout 将字符类型的变量所存储的值输出至终端中显示的 的确是字符而不是数值

对于上述两点事实分别作出如下两点解释:

  1. 字符类型的变量中存储的实际是数值而不是字符。
  2. cout 在将字符类型的变量所存储的值 输出至终端前 会将变量值转化为 该值所对应的 ASCII 字符

数值而不是字符

除了传递字符给 char 变量外,你还可以 直接将需要保存的字符对应的 ASCII 码传递给该变量作为该变量的值。例如:

#include <iostream>
using namespace std;


int main() {
    char letter = 97;
    cout << letter << endl;
    
    system("pause");
    return 0;
}

执行结果

a
请按任意键继续. . .

signed char 与 unsigned char

char 在默认情况下是否为有符号数据类型由 C++ 实现来决定,这样编译器的开发人员将能够最大限度地将这种类型与硬件属性匹配起来。你可以使用 signed charunsigned char 来显式指定 char 为哪一种类型。
如果将 char 用作数值类型,则 unsigned charsigned char 之间的差异将变得非常重要。unsigned char 类型所支持的范围为 0 ~ 255 ,而 signed char 类型所支持的范围为 -128 ~ 127

举个栗子

#include <iostream>
using namespace std;


int main() {
    unsigned char letter = 130;
    cout << letter << endl;
    cout << "--------------------" << endl;
    cout << (int)letter << endl;
    
    system("pause");
    return 0;
}

执行效果

为了使 cout 语句 直接输出字符类型变量所存储的具体数值,在上述示例中我们通过使用 (int) 将字符类型的数据转化为整型数据类型。


--------------------
130
请按任意键继续. . .

请尽可能使用 unsigned charsigned char 来显式指定 char 的类型,否则您无法判断运行程序后是否会出现如下状况:

#include <iostream>
using namespace std;


int main() {
    char letter = 130;
    cout << letter << endl;
    cout << "--------------------" << endl;
    cout << (int)letter << endl;
    
    system("pause");
    return 0;
}

执行结果


--------------------
-126
请按任意键继续. . .

空字符型字面量

C++ 不允许使用空字符型字面量。在需要字符型字面量时,确保使用 单引号包裹一个字符 以避免编译时错误。对此,请参考如下示例:

#include <iostream>
using namespace std;


int main() {
    // 尝试向终端输出空字符型字面量
    cout << '' << endl;
    
    system("pause");
    return 0;
}

执行效果

C++ 编译器抛出异常信息 empty character constant

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

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

相关文章

【UE5 Cesium】17-Cesium for Unreal 建立飞行跟踪器(2)

目录 效果 步骤 一、飞机沿航线飞行 二、通过切换相机实现在不同角度观察飞机飞行 效果 步骤 一、飞机沿航线飞行 先去模型网站下载一个波音737飞机模型 然后将下载好的模型导入到UE项目中&#xff0c;导入时需要勾选“合并网格体”&#xff08;导入前最好在建模软件中将…

阿里云上了新闻联播

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 阿里新任的CEO吴泳铭上央视新闻联播了! 在昨天的新闻联播里&#xff0c;出席科技座谈会&#xff0c;有一个特别镜头&#xff0c;出现了阿里新任CEO吴泳铭的镜头。 这个信号意义明显&#xff0c;我…

sentinel的启动与运行

首先我们github下载sentinel Releases alibaba/Sentinel (github.com) 下载好了后输入命令让它运行即可&#xff0c;使用cmd窗口输入一下命令即可 java -Dserver.port8089 -jar sentinel-dashboard-1.8.6.jar 账号密码默认都是sentinel

20哈希表-三数之和

目录 LeetCode之路——15. 三数之和 分析&#xff1a; 官方题解&#xff1a; LeetCode之路——15. 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nu…

黄金票据和白银票据

文章目录 Kerberos使用背景kerberos认证流程黄金票据和白银票据 Kerberos使用背景 1、个人文件还是公司文件以及服务都存在于一台系统上&#xff0c;所有人都要去一台机器办公&#xff0c;效率非常低&#xff0c;为每个人分配了电脑以后就需要考虑安全问题 2、如何让服务器正确…

一款好用的leetcode周赛插件:再也不用写代码的时候来回看描述了

今天发现了一个群友分享的一款leetcode插件&#xff0c;分享给大家。 对于熟悉leetcode的小伙伴应该会有一个困扰&#xff0c;那就是在leetcode打周赛的时候&#xff0c;题目描述和编辑区不是左右排版的&#xff0c;而是上下排版的&#xff0c;我们代码写着写着就需要移到最上…

设计模式 - 行为型考点模式:责任链模式(概述 | 案例实现 | 优缺点 | 使用场景)

目录 一、行为型模式 1.1、责任链模式 1.1.1、概述 1.1.2、案例实现 1.1.3、优缺点 1.1.4、使用场景 一、行为型模式 1.1、责任链模式 1.1.1、概述 为了避免请求发送者和多个请求处理者耦合在一起&#xff0c;就将所有请求处理者通过前一个对象记住下一个对象的引用的方…

飞行文本动画效果

效果展示 JavaScript 知识点 textContent.replace 方法运用anime.min.js 插件运用 实现整体页面布局 <section><p class"text">Lorem ipsum dolor sit amet consectetur, adipisicing elit. Impedit suscipitiure explicabo delectus laborum archite…

AVS3:DMVR

AVS3中引入了解码端运动矢量修正&#xff08;DMVR,Decoder side Motion Vector Refinement&#xff09;技术&#xff0c;AVS3中的DMVR技术和G.266/VVC类似&#xff0c;它可以在解码端生成运动参数从而减少传输运动参数的码率开销。它的基本思想是将skip/direct模式生成的前后向…

ArcGIS/GeoScene脚本:基于粒子群优化的支持向量机回归模型

参数输入 1.样本数据必须包含需要回归的字段 2.回归字段是数值类型 3.影响因子是栅格数据&#xff0c;可添加多个 4.随机种子可以确保每次运行的训练集和测试集一致 5.训练集占比为0-1之间的小数 6.迭代次数&#xff1a;迭代次数越高精度越高&#xff0c;但是运行时间越长…

MODBUS-RTU通信协议功能码+数据帧解读(博途PLC梯形图代码)

MODBUS通信详细代码编写,请查看下面相关链接,这篇博客主要和大家介绍MODBUS协议的一些常用功能码和具体数据帧解析,以便大家更好的理解MODBUS通信和解决现场实际问题。 S7-1200PLC MODBUS-RTU通信 博途PLC 1200/1500PLC MODBUS-RTU通讯_博图modbus rtu通讯实例-CSDN博客1、…

博弈论——动态博弈

动态博弈 0 引言 前面一篇文章介绍了博弈过程中的三个分类&#xff1a;静态博弈、动态博弈、重复博弈。今天具体讲讲动态博弈的处理方法。 博弈论——博弈过程 1 概念 首先还是介绍一下动态博弈的概念&#xff0c;即博弈中各博弈方的选择和行动不仅有先后次序&#xff0c;而…

USB协议层数据格式

USB协议 1. 硬件拓扑结构2. 协议层2.1 字节/位传输顺序2.2 SYNC域2.3 包格式2.3.1 PID域2.3.2 令牌包(Token)2.3.3 数据包2.3.4 握手包 2.4 传输细节2.4.1 传输(Transfer)和事务(Transaction)2.4.2 过程(stage)和阶段(phase)2.4.3 批量传输2.4.4 中断传输2.4.5 实时传输2.4.6 控…

点云采样方法

随机采样&#xff0c;网格采样&#xff0c;均匀采样&#xff0c;集合采样。 网格采样&#xff1a;用规则的网格对点进行采样&#xff0c;不能精确的控制采样点的数量 均匀采样&#xff1a;均匀的采样点云中的点&#xff0c;由于其鲁棒性(系统的健壮性)而更受欢迎 点云降采样…

Jetpack:004-如何使用文本组件

文章目录 1. 概念介绍2. 使用方法2.1 通用参数2.2 专用参数 3. 示例代码4. 内容总结 我们在上一章回中介绍了Jetpack组件在布局中的对齐方式&#xff0c;本章回中主要介绍文 本组件的使用方法。闲话休提&#xff0c;让我们一起Talk Android Jetpack吧 1. 概念介绍 我们在本章…

分库分表(3)——ShardingJDBC实践

一、ShardingSphere产品介绍 Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈&#xff0c;它由 JDBC、Proxy 和 Sidecar&#xff08;规划中&#xff09;这 3 款相互独立&#xff0c;却又能够混合部署配合使用的产品组成。 它们均提供标准化的数据分…

【Java 进阶篇】CSS盒子模型详解

CSS盒子模型是网页布局的基础之一&#xff0c;它定义了HTML元素在页面上的占用空间和相互关系。理解CSS盒子模型对于构建各种类型的网页布局至关重要。在本文中&#xff0c;我们将深入探讨CSS盒子模型的各个方面&#xff0c;包括盒子模型的概念、属性和如何使用它们来控制元素的…

S7-1200与力控通过S7协议通讯

测试环境&#xff1a;Win10、力控7.2SP3、1214DCDCDC 博途工控人平时在哪里技术交流博途工控人社群 博途工控人平时在哪里技术交流博途工控人社群 在画面管理中&#xff0c;有种弹出画面&#xff0c;也就是窗口提示画面&#xff0c; 1-PLC端配置 PLC IP设置为192.168.2.10 …

从0开始学go第六天

方法一&#xff1a;gin获取querystring参数 package main//querystring import ("net/http""github.com/gin-gonic/gin" )func main() {r : gin.Default()r.GET("/web", func(c *gin.Context) {//获取浏览器那边发请求携带的query String参数//…