数据类型总结

news2024/11/17 4:57:57

1 引言

在计算机的世界里,数据类型是被人类定义出来的,方便人去更好地理解、辨别数据。计算机只能识别二进制数,不可能要求写代码时,只是输入一些0/1的东西。通过定义数据类型,可以让人和计算机更好地“沟通”,计算机对不同数据类型编译的方式是不一样的。

同时,不同的数据类型在计算机中占有的存储空间大小又是不一样的,即有的占用空间大,有的占用空间小,这样一来,计算机存储就更加灵活,空间利用率也会更高。数据在计算机中存储的空间用字节(Byte)来计量,一个字节存储8位无符号数,储存的数值范围为0-255。

常用的数据类型有:整型、浮点型、字符型、布尔型。要完全弄清楚一个数据类型,笔者觉得应该从这几个维度进行总结归纳:① 作用;② 分类;② 表示方法;③ 内存和范围;⑤ 特殊知识点。

2 不同数据类型介绍

2.1 整型

① 作用:用来表示整数;

② 分类:短整型(short)、整型(int)、长整型(long)、长长整型(long long)。

③ 表示方法:数据类型 变量名 = 变量初始值

例如:

short a = 1;  //短整型变量a

int b = 2; //整型变量b

long c = 3; //长整型变量c

long long d = 4; //长长整型变量d

④ 内存和范围

⑤ 特殊知识点

  • 在其它地方经常看到int8/int16/int32样式的表示方法:int8等同于Byte,占一个字节;int16等同于short占两个字节;int32等同于int,占四个字节;int64等同于long long,占8个字节。
  • 超过所能表示的最大值时,会用该数据类型的下限表示(也就是出错了)。

2.2 浮点型

① 作用:用来表示小数

② 分类:单精度(float)、双精度(double)

③ 表示方法:数据类型 变量名 = 变量初始值

举例:

float a = 1.1f; //定义一个单精度变量

double = 1.2; //定义一个双精度变量

④ 内存和范围

⑤ 特殊知识点

  • float在定义时,后面最好加一个f,float a = 3.14f;如果定义是float a = 3.14;会默认a是双精度,在程序运行时,需要转一下。
  • 在C++中,无论是float还是double,小数输出时,默认显示6位有效数字。
  • 科学计数法的表示方法:1) float a = 3e^2;//表示3*10^2   2)float b=3e^-2;//表示0.03

2.3 字符型

① 作用:用来表示文本信息

② 分类:字符、转义字符、字符串

③ 表示方法

字符:char 变量名 = ‘字符’; //用单引号

转义字符:一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符。常用的转义字符有1)\n 换行;2)\\反斜杠;3)\t加8个空格。

字符串:两种风格

1)C风格:char 变量名[] = "字符串"; //双引号

2)C++风格:string 变量名 = "字符串"; //需要包含头文件#include<string>

④ 内存和范围

一个字符占一个字节

⑤ 特殊知识点

  • 字符是将对应的ASIC码放入到存储单元中,计算机内存的是对应的二进制数;
  • 使用string时,需要包含头文件#include<string>。

2.4 布尔类型

① 作用:表示真或假

② 分类:bool

③ 表示方法:bool 变量名 = ‘true’ or 'false'

④ 内存和范围:只占一个字节,0或者1

3 常用相关的函数

3.1 sizeof函数

作用:可以用来统计数据所占内存;

语法:sizeof(变量)或者sizeof(变量类型)

int a;
int a_length_1 = sizeof(a);
int a_length_2 = sizeof(int);
int b[5]={1,2,3,4,5};
int b_length=sizeof(b)/sizeof(int);//求数组长度

3.2 数据输入

关键字:cin

语法:cin<<变量;

3.3 数据输出

关键字:cout

语法:cout<<变量<<endl;        //endl表示换行

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

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

相关文章

ESP32环境下基于SD卡与FTP实现温湿度数据采集与存储

本篇文章将介绍如何利用ESP32开发板结合SD卡与FTP服务器功能&#xff0c;实现温湿度数据的实时采集、存储与远程访问。项目代码基于Arduino IDE平台编写&#xff0c;主要依赖于以下库&#xff1a; SPIDHTWiFitime.hESP-FTP-Server-LibSDSPIFFSFS 1. 硬件连接与配置 1.1 所需…

【机器学习与实现】机器学习概述

目录 一、机器学习的基本概念和方法&#xff08;一&#xff09;基本概念&#xff08;二&#xff09;机器学习的一般过程举例&#xff08;三&#xff09;样本和参数估计 二、机器学习的步骤总结&#xff08;一&#xff09;机器学习的主要步骤&#xff08;二&#xff09;样本及样…

zookeeper安装原生开发 C API接口时报错

报出的错误&#xff1a;error: %d directive writing between 1 and 5 bytes into a region of size be 问题原因 %d 格式说明符用于格式化有符号十进制整数。它需要一个与要格式化的整数大小相匹配的缓冲区。如果缓冲区太小&#xff0c;则会导致缓冲区溢出&#xff0c;从而可…

异地组网、内部网络需求同时满足,贝锐企业路由器G300开箱体验

由于公司最近新增了办事处&#xff0c;作为IT管理员的我不仅需要搞定办事处的网络&#xff0c;还需要解决远程访问公司内部办公系统以及文件存储服务器的问题。 在此之前&#xff0c;只有少量人员出差时&#xff0c;我们采用了虚拟专网方案来进行远程访问。然而&#xff0c;新…

ROS2中node之最简单的HelloWorld(C++)案例

ROS2中node之最简单的HelloWorld&#xff08;C&#xff09;案例 1、创建工作空间2、编译工作空间3、创建功能包4、编写helloworld 代码5、编辑CMakeLists.txt6、编译工作空间所有功能包7、运行结果 1、创建工作空间 $ mkdir -p ~/devnode_ws/src $ cd ~/devnode_ws/2、编译工作…

探索SmartEDA:电路仿真的教学新境界

在电子工程的教学领域&#xff0c;随着技术的飞速发展&#xff0c;传统的教学方法已经难以满足现代学生的学习需求。近年来&#xff0c;电路仿真软件在教学中的应用逐渐受到关注&#xff0c;而SmartEDA作为一款功能强大的电路仿真软件&#xff0c;为电子工程教学带来了革命性的…

韩国机器人公司Rainbow Robotics推出RB-Y1轮式双臂机器人

文 | BFT机器人 近日&#xff0c;韩国机器人领域的佼佼者Rainbow Robotics揭开了RB-Y1移动机器人的神秘面纱&#xff0c;这款机器人以其创新的设计和卓越的功能引起了业界的广泛关注。与此同时&#xff0c;Rainbow Robotics还携手舍弗勒集团&#xff08;提供汽车、工业技术服务…

Java | Leetcode Java题解之第41题缺失的第一个正数

题目&#xff1a; 题解&#xff1a; class Solution {public int firstMissingPositive(int[] nums) {int n nums.length;for (int i 0; i < n; i) {while (nums[i] > 0 && nums[i] < n && nums[nums[i] - 1] ! nums[i]) {int temp nums[nums[i] …

【前端技术】HTML基础入门篇

1.1 HTML简介 ​ HTML&#xff08;HyperText Markup Language&#xff1a;超文本标记语言&#xff09;是一种标识性的语言。它包括一系列标签&#xff0e;通过这些标签可以将网络上的文档格式统一&#xff0c;使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组…

opencv绘制线段------c++

绘制线段 bool opencvTool::drawLines(std::string image_p, std::vector<cv::Point> points) {cv::Mat ima cv::imread(image_p.c_str()); // 读取图像&#xff0c;替换为你的图片路径 cv::Scalar red cv::Scalar(0, 0, 255); // Red color int thickness 2;// 遍…

用html画一个四叶草

<!DOCTYPE html> <html lang"en" > <head> <meta charset"UTF-8"> <title>四叶草</title> <link href"" rel"stylesheet"> <link rel"stylesheet" href"css/style.css&q…

上位机图像处理和嵌入式模块部署(树莓派4b与视觉slam十四讲)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 实际使用中&#xff0c;树莓派4b是非常好的一个基础平台。本身板子价格也不是很贵&#xff0c;建议大家多多使用。之前关于vslam&#xff0c;也就是…

树 —— 树和森林的遍历

一、树的遍历 &#xff08;1&#xff09;先根遍历 若树非空&#xff0c;则遍历方法为 &#xff08;1&#xff09;访问根结点。 &#xff08;2&#xff09;从左到右&#xff0c;依次先根遍历根结点的每一棵子树。 先根遍历序列为&#xff1a;ABECFHGD。 &#xff08;2&#…

IP定位技术助力网络安全保护

在当今数字化时代&#xff0c;网络安全成为各个组织和个人关注的焦点之一。随着网络攻击日益复杂和频繁&#xff0c;有效的网络安全保护措施变得至关重要。IP定位技术作为网络安全的重要组成部分&#xff0c;为识别、定位和防御网络攻击提供了关键支持。本文将探讨IP定位技术如…

Spring Cloud学习笔记(Ribbon):Ribbon的应用样例

这是本人学习的总结&#xff0c;主要学习资料如下 - 马士兵教育 1、Ribbon简介1.1、架构图1.2、简单实现负载均衡 2、配置负载均衡策略2.1、IRule2.2、使用IRule简单示例2.2.1、Overview2.2.1、注入IRule2.2.2、关联IRule和服务 1、Ribbon简介 我们都知道Ribbon是用于负载均衡…

【数据结构】算法效率揭秘:时间与空间复杂度的较量

前言 在计算机科学中&#xff0c;时间复杂度和空间复杂度是衡量算法性能的两个重要指标。它们分别表示算法在执行过程中所需的时间和空间资源。了解这两个概念有助于我们评估和比较不同算法的优劣&#xff0c;从而选择更合适的算法解决问题~ 欢迎关注个人主页&#xff1a;逸狼 …

电子邮件免费版有哪些?免费注册电子邮箱

电子邮件有付费版和免费版两种类型&#xff0c;付费版通常具有更大的电子邮箱容量和更强大的电子邮箱功能。但是对于我们个人用户或者是中小型企业来说注册电子邮箱免费版的就够日常使用了。电子邮件的免费版提供商有Zoho Mail、微软、腾讯等&#xff0c;今天我们就来具体了解下…

【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

报告!这里发现了一个赛博炼丹的神级平台!

众所周知&#xff0c;“赛博炼丹”是一个AI开发研究领域古老又神秘的活动&#xff0c;它往往对炼丹平台有很高的要求。如果你也是一路从“炼丹小白”成长到“资深AI算法工程师”&#xff0c;那你一定懂我在说什么&#xff1f;说好了&#xff0c;天台见&#xff01; GpuMall智算…

redis单线程模型

工作原理 在Redis中&#xff0c;当两个客户端同时发送相同的请求时&#xff0c;Redis采用单线程模型来处理所有的客户端请求&#xff0c;会依次处理这些请求&#xff0c;每个请求都会按照先后顺序被执行&#xff0c;不会同时处理多个请求。使得Redis能够避免多线程并发访问数据…