首页 > 其他分享 >什么是数据类型

什么是数据类型

时间:2024-02-01 20:32:43浏览次数:30  
标签:存储 什么 数据类型 内存 长度 bit byte

一、基本概念

首先,数据类型应该拆开来理解,分别是数据和类型。我们先讲什么是数据,本质上是计算机内存中的0和1,由于计算机存储的基本单位是字节(byte),最小单位是位(bit),一个节字等于8位,这些都是计算机客观存在的概念。所以,byte在计算机占8个位,bit在计算机中占1个位,由于这两个家伙所占的存储空间长度不一样,所以我们才分别命名为byte和bit,其实,这里的byte和bit就是计算机中两种不同的数据类型。

哦,原来是这样,把占据不同存储空间的数据进行分类,并分别取名,于是就出现了各种各样的数据类型。它其实指的是变量或数据在内存中所占用的空间大小和布局方式,以及该数据可以进行的操作。在计算机编程中,数据类型不仅能够决定程序的正确性和效率,还能够影响程序的可读性和可维护性。

这有点像长度单位,打个不太严谨的比方,把圆珠笔芯的直径叫1毫米,把人的指甲盖的距离叫1厘米,把一个鸡蛋的长度叫1分米,把一根适合的拐杖的长度叫1米。在C#中,占一个bit的数据长度称为bit,占8个bit的数据长度称为byte,占16个bit的数据长度称为短整型short,占32个bit的数据称为整型int,占64个bit的数据长度称为长整型long。

于是,不同的内存存储长度,就可以表示不同的数值范围。理化上讲,存储长度越长,即所占位数越多,所能表示的数值越大。

这就好比作文本,一个格子只能写一个字,一页纸就可以写一篇短文,一本厚厚的作文书就可以写一本小说。

二、数据类型的作用

为什么我们要定义不同的数据类型,从本质上,也就是说,为什么我们在使用内存时, 要将内存分成长短不一的存储空间,然后再给程序员使用?

这和酒店的房间有相似之处。本着节约思想,如果是一个人入住,开个单间就够了,如果是两个人入住,就需要开个标间,如果是三个人入住,有的酒店还会提供三人间,如果是四个人入住,那可以开两个标间,这里单间、标间和三人间就是房间的(数据)类型。如果一个人入住也开个三人间,那就有点浪费床位了。

将内存分成不同长度的存储形式,以便程序员申请内存时,选择适合的存储空间,也是为了节约计算机的资源。比如我们要存储一个人的年龄,人的年龄不可能是一个很大的数值,比如9000岁,那是传说中太监,实际开发中是不存在这种情形的。人的年龄区间一般来说是0-120,也不可能是负数。所以,用一个bit来存储,显示存不下,因为一个bit只能存0或1两个数据,而且计算机也没有将bit做为一种数据类型开放给程序员。用8个bit来存储年龄是否可以呢?我们就要看看这8个bit所能表示的数值范围了,首先是8个0,00000000=0,这是最小的情况(不考虑负数存储),然后是8个1,11111111=255,这是最大的情况,而8个bit在C#中用byte(字节)来表示,说明我们可以申请一个byte类型的内存空间来存储年龄数据,虽然120以上的数值我们也用不上,但这是C#给程序员开放的最小的数据存储类型了,它就好比酒店的单间。

我们是否可以用16个bit空间来存放年龄呢?还是先看看16个bit的数值范围,0000000000000000=0,1111111111111111=65535,在C#中short表示16位的整数,范围是0-65535。由此可见,申请一个short类型的内存空间来存储年龄,属实有点小资。

综上所述,它的作用是:

1.决定变量在内存中所占用的空间大小和布局方式。不同的数据类型在内存中所占用的空间大小是不同的,因此数据类型的选择会直接影响到程序的内存使用效率。

2.决定变量可以进行的操作。不同的数据类型可以进行的操作也是不同的,例如整型可以进行加减乘除等算数运算,而字符型则可以进行字符串拼接等操作。

3.决定程序的正确性和效率。数据类型的正确选择可以保证程序的正确性,而数据类型的选择不当会导致程序出错或者效率低下。

结论

了解计算机的数据类型,正确选择适合的数据类型,是开发高效稳健程序的关键。作为程序员,在选择数据类型时,应从下面几个因素考虑。

首先是数据的范围和精度,按需分配,根据实际需求申请不同存储长度的内存空间,避免不必要的浪费。其次,不同的数据类型在内存使作效率方面也是不同的,要了解每种数据类型的效率,最后,尽量选择简单明了的数据类型,增加程序的可读性和维护性。

我们探讨了数据类型与所占内存的长度关系之后,下一步就要了解.NET框架定义了哪些基础数据类型,这些类型被称为基元类型,它们被定义在FCL框架类库(Framework Class Library)中。由于.NET同时支持C#、F#、VB语言,所以每一种语言也有自己的数据类型,不过,通常它们与.NET框架的基元类型都有一一对应的关系。

——重庆教主 2023年12月13日

标签:存储,什么,数据类型,内存,长度,bit,byte
From: https://blog.51cto.com/wpfsoft/9536188

相关文章

  • C#的基础数据类型
    C#语言在.NET基元类型的基础上,也编制了一份数据类型。所以,将来我们在开发C#程序时,声明基础数据类型,其实就有两种写法。它们的对应如下表所示。.NET数据类型C#数据类型说明范围System.SBytesbyte8位有符号整数类型-128到127System.Bytebyte8位无符号整数0到255System.Int16sho......
  • 提升网站性能的秘诀:为什么Nginx是高效服务器的代名词?
    在这个信息爆炸的时代,每当你在浏览器中输入一个网址,背后都有一个强大的服务器在默默地工作。而在这些服务器中,有一个名字你可能听说过无数次——Nginx。今天,就让我们一起探索这个神奇的工具。一、Nginx是什么Nginx(发音为“enginex”)是一个开源的高性能HTTP和反向代理服务器。它由......
  • 视频融合平台EasyCVR推流成功但平台显示不在线是什么原因?
    TSINGSEE青犀视频监控汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的能力,包括对人、车、......
  • 如何远程登录云服务器?登录失败是什么原因?
    我用Linux云服务器,遇到了有关远程登录的一些问题,于是搜索了一些资料,整理了一篇文档,作为记录。如果你也遇到过相似的问题,欢迎一起探讨!一、Linux云服务器的远程登录远程登陆linux,使用的是ssh协议。windows平台下有putty,Xshell,SecureCRT等工具来远程连接linux服务器。1、putty是......
  • Python中的基础数据类型:List、Tuple和Dict及其常用用法简析
    在Python编程语言中,基础数据类型是构建程序的基本元素。这些基础数据类型包括List(列表)、Tuple(元组)和Dict(字典)。每种数据类型都有其特定的用途和特性,了解并掌握它们对于编写高效、可维护的Python代码至关重要。本文将深入探讨这三种基础数据类型,并通过代码示例展示它们的常用用法。......
  • 单页应用(SPA)是什么?
    来源:https://zhuanlan.zhihu.com/p/648113861概述单页应用(SPA,SinglePageApplication)是一种网页应用或网站的设计模式,它在浏览器中仅加载一个HTML页面,并动态地更新该页面,而不是为每个新页面加载新的HTML。这使得应用能够与用户交互,无需重新加载整个页面。主要特点:动态重......
  • 神经网络优化篇:详解Batch Norm 为什么奏效?(Why does Batch Norm work?)
    BatchNorm为什么奏效?为什么Batch归一化会起作用呢?一个原因是,已经看到如何归一化输入特征值\(x\),使其均值为0,方差1,它又是怎样加速学习的,有一些从0到1而不是从1到1000的特征值,通过归一化所有的输入特征值\(x\),以获得类似范围的值,可以加速学习。所以Batch归一化起的作用的原因,直......
  • npm disturl 是做什么用的?
    npmdisturl是做什么用的?npmdisturl是一个配置项,用于设置npm下载tarball包(通常是Node.js的二进制文件或者一些带有平台相关编译内容的npm模块)时的基础URL。当npm需要从源代码构建依赖项,并且这些依赖项包含需要从特定位置下载的预编译二进制文件时,它会使用这个disturl来定位和......
  • 数据类型及其拓展
    数据类型强类型语言要求变量的使用的严格符合规定,所有的变量都必须先定义后才能使用publicclassDemo02{publicstaticvoidmain(String[]args){Stringa="Hello";intnum=10;System.out.println(a);System.out.println(n......
  • 什么是二进制
    一、二进制的起源二进制(Binary)是由德国数学家和哲学家莱布尼茨首先提出来的。二进制是一种记数系统,只使用0和1两个数字来表示数,逢二进一。二进制在计算机科学、电子工程、数学等领域中得到了广泛的应用,因为可以很方便地表示和处理数字、图像、音频和视频等信息。当然,最重要的一个原......