1.3数据类型

作者: 洪流滚滚1 | 来源:发表于2018-06-05 22:04 被阅读14次

        上节提到过,变量就像书架上的标签,书架上的书就是数据,书架上可以放很多书,32开本的,16开本的,8开本的,等等等等,开本越大需要的书架空间越大。电脑的内存就像是书架,里面存放着各种数据,有文件,有图像,有录音,有视频,有游戏等等,但我们可以把这些数据细分再细分,分到最基本的单元,就是0和1。也就是阴和阳。两仪生四象,四象生八卦,八卦生六十四卦,以至于无穷,无穷到除了算命先生之外谁也看不懂。计算机也是同样的道理,计算机最初也是用纸带进行数据存储的,纸条打孔代表1,不打孔代表2,但随着技术的发展,内存条的出现淘汰了纸带,内存空间越来越大,单纯看0和1已经发展到谁也看不懂的地步了,不过原理是一样的。我们拆开计算机主板上插的内存条,里面有许多的整齐排列的电容(当然不止是电容),给电容充电相当于给纸带打孔,电容充电就代表1,放电就代表0。但几十万上百万甚至上亿的0和1的组合除了计算机自己已经谁也理解不了了。为了人类的方便,我们把一个小电容叫一个“位”,然后把八个“位”打包组成一个整体,叫字节,一大堆字节以特定规则排列起来,就是内存了。如果难以理解,就去找一个算盘看看,一个珠子就是一个“位”,用竹签子串起来的一串珠子就是一个字节。一个字节对应一个地址,就像是大楼房间外的门牌号,也像书架的书架号,学名叫地址(address)。这是内存条生产的时候就标好了的。这就是内存的基本结构。

        能往内存中放的基本数据有2种,一种是整数类型,也就是整数;一种是浮点型,也就是小数。(也有的书把字符型单列出来的。)因为整数可以直接转化成二进制数,而小数要分成三部分——整数部分、小数点、小数部分,所以整数和小数在内存中的存储方式是不一样的,电脑更喜欢处理整数,对于小数来说,处理的过程中会出现一些失真,失真的原因是数学问题,这里不深入谈。

       整型再分可以分成枚举型 enum(关键字中出现过,代表有限集合);字符型char(对的,我们看到的文字在电脑里都是整数。)整型  int;字符型用一个字节,可以表达256个整数数字。即2^8(2的8次方),如果是无符号数(不含正负号),取值范围为0-255,如果是有符号数,取值范围为-127——+127,它可以参与计算,但一般不用它计算,它的用处是存储字符。int(short)用两个字节,存2^16个数,long占4个字节(64位计算机的话可能占8个字节)。它能存多大的数,取决于它占用的字节数——当然,不是无限的,计算机没有无限这个概念,它理解不了无限,如果你想保存的数据超过了它所能表达的数,电脑就会出错,也就是出现传说中的八阿哥(bug)。

        浮点型分三种,float(取值范围为-3.4*10^38~+3.4*10^38,即3.4*10的-38次幂 ——3.4*10的38次幂);double(-1.7*10^-308~1.7*10^308);long double(-1.2*10^-4932~1.2*10^4932),取值范围可以说很大了,需要用大数的话就用浮点型。

       此外还有指针型*,指针型是一种特殊的整型,它存储的数据代表数据存放的位置在内存中的地址。

       数组型,也就是给一组整型或者浮点型打包。

       结构体型struct,也就是给一堆各种各样的数据类型打包。

        我们住酒店的时候会说,给我一个单间,或给我们一个双人间。我们在申请变量的时候,基实就是向内存说:给我一个XX型变量所能用的字节空间。这是一样的。

       这一节没有代码,只谈一些理论,具体内容以后再结合代码细说。

相关文章

  • 简单数据类型和复杂数据类型

    1 - 简单数据类型和复杂数据类型 1.1 简单数据类型 1.2 复杂数据类型 1.3 堆栈 堆栈空间分配区别: ...

  • 1.3数据类型

    上节提到过,变量就像书架上的标签,书架上的书就是数据,书架上可以放很多书,32开本的,16开本的,8开本的...

  • 第二章 排序(2.1 初级排序算法)

    1.3 额外的内存使用 1.4 数据类型 在创建自己的数据类型时,我们只要实现Comparable接口就够保证用例...

  • 二、数据类型和向量

    生信技能树数据挖掘课程学习笔记 二、数据类型和向量 数据类型 数值型numeric:1.3、2 字符型 chara...

  • Java(02)语法基础

    一.数据类型1.1.整形数据类型1.2.浮点数据类型1.3.字符类型1.4.转义字符1.5.布尔类型1.6.引用数...

  • numpy

    1.ndarray 多维数组对象 同构类型。 1.1 创建ndarray 1.2 ndarray 数据类型 1.3...

  • java学习笔记(四)数组

    个人笔记,仅供参考 1、数组 1.2、定义 数组是可以存储多个相同数据类型的数据结构 1.3、数组的声明 数据类型...

  • TypeScript知识结构图

    1. TypeScript知识结构图 1.1 数据类型 1.2 变量声明 1.3 接口 1.4 类

  • JavaScript - 1.语法变量 + 数据类型 + 运算表

    1 JavaScript 语法 1.1 语句 1.2 注释 1.3 变量 1.4 原始数据类型 1.5 引用数剧类...

  • Swift4.0基础语法笔记

    Swift 语言特性 面向对象 1.1 调试 断点 打印函数 断言 1.2 注释 1.3 捕获异常 2.数据类型 ...

网友评论

    本文标题:1.3数据类型

    本文链接:https://www.haomeiwen.com/subject/getpsftx.html