​​【收录 Hello 算法】3.2 基本数据类型

news/2024/10/22 11:13:18/

目录

3.2   基本数据类型


3.2   基本数据类型

当谈及计算机中的数据时,我们会想到文本、图片、视频、语音、3D 模型等各种形式。尽管这些数据的组织形式各异,但它们都由各种基本数据类型构成。

基本数据类型是 CPU 可以直接进行运算的类型,在算法中直接被使用,主要包括以下几种。

  • 整数类型 byteshortintlong 。
  • 浮点数类型 floatdouble ,用于表示小数。
  • 字符类型 char ,用于表示各种语言的字母、标点符号甚至表情符号等。
  • 布尔类型 bool ,用于表示“是”与“否”判断。

基本数据类型以二进制的形式存储在计算机中。一个二进制位即为 1 比特。在绝大多数现代操作系统中,1 字节(byte)由 8 比特(bit)组成。

基本数据类型的取值范围取决于其占用的空间大小。下面以 Java 为例。

  • 整数类型 byte 占用 1 字节 = 8 比特 ,可以表示 28 个数字。
  • 整数类型 int 占用 4 字节 = 32 比特 ,可以表示 232 个数字。

表 3-1 列举了 Java 中各种基本数据类型的占用空间、取值范围和默认值。此表格无须死记硬背,大致理解即可,需要时可以通过查表来回忆。

表 3-1   基本数据类型的占用空间和取值范围

类型符号占用空间最小值最大值默认值
整数byte1 字节−27 (−128)27−1 (127)0
short2 字节−215215−10
int4 字节−231231−10
long8 字节−263263−10
浮点数float4 字节1.175×10−383.403×10380.0f
double8 字节2.225×10−3081.798×103080.0
字符char2 字节0216−10
布尔bool1 字节falsetruefalse

请注意,表 3-1 针对的是 Java 的基本数据类型的情况。每种编程语言都有各自的数据类型定义,它们的占用空间、取值范围和默认值可能会有所不同。

  • 在 Python 中,整数类型 int 可以是任意大小,只受限于可用内存;浮点数 float 是双精度 64 位;没有 char 类型,单个字符实际上是长度为 1 的字符串 str 。
  • C 和 C++ 未明确规定基本数据类型的大小,而因实现和平台各异。表 3-1 遵循 LP64 数据模型,其用于包括 Linux 和 macOS 在内的 Unix 64 位操作系统。
  • 字符 char 的大小在 C 和 C++ 中为 1 字节,在大多数编程语言中取决于特定的字符编码方法,详见“字符编码”章节。
  • 即使表示布尔量仅需 1 位(0 或 1),它在内存中通常也存储为 1 字节。这是因为现代计算机 CPU 通常将 1 字节作为最小寻址内存单元。

那么,基本数据类型与数据结构之间有什么联系呢?我们知道,数据结构是在计算机中组织与存储数据的方式。这句话的主语是“结构”而非“数据”。

如果想表示“一排数字”,我们自然会想到使用数组。这是因为数组的线性结构可以表示数字的相邻关系和顺序关系,但至于存储的内容是整数 int、小数 float 还是字符 char ,则与“数据结构”无关。

换句话说,基本数据类型提供了数据的“内容类型”,而数据结构提供了数据的“组织方式”。例如以下代码,我们用相同的数据结构(数组)来存储与表示不同的基本数据类型,包括 intfloatcharbool 等。

PythonC++JavaC#GoSwiftJSTSDartRustCKotlinRubyZig

// 使用多种基本数据类型来初始化数组
int numbers[5];
float decimals[5];
char characters[5];
bool bools[5];

http://www.ppmy.cn/news/1455054.html

相关文章

U3D游戏开发按钮相关

有一天一个小伙伴跟我说,对于按钮相关网络某些教程并不全面,我大致看了,几乎差不多,接下来就大致补充一点代码相关的知识点了,还有我日常开发常用的一些按钮相关代码知识。 目录 1.UGUI的普通按钮相关 2.UGUI的异型…

【牛客网】值周

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 差分。 因为l<100000000,所以数组开1e8。 唯一需要注意的点就是前面给b[0]单独赋值为1&#xff08;因为如果在循环中给b[0]赋值&…

拐点——站在AI颠覆世界的前夜

一、ChatGPT究竟是什么 1.大变局&#xff1a;一个新智慧形态的产生 正如iPhone在2007年开启了智能手机时代&#xff0c;ChatGPT在 2023年开启了人工智能时代。很荣幸我们赶上了这个历史时刻。那怎么理解这个新时代呢?要想知道 ChatGPT 究竟是什么&#xff0c;我们必须先考虑更…

前后端功能实现——添加品牌

需求 点击新增&#xff0c;跳转到添加品牌的页面&#xff0c;从后一个页面提交品牌数据&#xff1a; 1、BrandMapper接口添加add()方法 /** * 添加品牌 */ void add(Brand brand); 2、BrandMapper.xml中添加sql方法 <insert id"add">insert into brand val…

个人站点重启

Hexo项目在硬盘&#xff0c;换电脑后需要的配置 下载git 安装node.js https://www.nodejs.com.cn/download.html 安装hexo npm install -g hexo-cli npm install 安装依赖 hexo server 测试成功即可 github仓库项目在硬盘&#xff0c;换电脑后配置 git config -g user.name “…

【软件工程】测试

目录 前言软件测试的目标测试准则测试方法测试方案&#xff08;重点&#xff09;白盒测试&#xff08;重点&#xff09;逻辑覆盖测试语句覆盖判定覆盖&#xff08;分支覆盖&#xff09;条件覆盖判定/条件覆盖条件组合覆盖总结 基本路径覆盖法 黑盒测试等价类法边界值分析法 软件…

acwing算法提高之数学知识--组合计数

目录 1 介绍2 训练 1 介绍 本博客用来记录组合计数相关题目。 2 训练 题目1&#xff1a;1307牡牛和牝牛 C代码如下&#xff0c; #include <cstring> #include <iostream> #include <algorithm>using namespace std;const int N 100010, mod 5000011;i…

C++设计模式-结构型设计模式

写少量的代码来应对未来需求的变化。 单例模式 定义 保证一个类仅有一个实例&#xff0c;并提供一个该实例的全局访问点。——《设计模式》GoF 解决问题 稳定点&#xff1a; 类只有一个实例&#xff0c;提供全局的访问点&#xff08;抽象&#xff09; 变化点&#xff1a…