精华内容
下载资源
问答
  • 常用数据类型的定义
    千次阅读
    2021-01-19 06:54:37

    数据类型是定义列中可以存储什么数据以及该数据实际怎么存储的基本规则。Mysql的常用数据类型主要有一下四种:串数据类型、数值数据类型、日期和时间数据类型、二进制数据类型 。

    一. 串数据类型

    这是最常用的数据类型,有两种基本的串类型:分别为定长串和不定长串。定长串结束长度固定的字符,其长度是创建表是指定的,不允许多于指定的字符数据,它们分配的存储空间与指定的一样多,CHAR属于定长串类型。变长串存储长度可变的文本,有些变长数据类型具有最大的定长,而有些则是完全变长的,不管哪种只有指定的数据得到保存(不会添加额外的空格保存),TEXT属于变长串类型。变长数据类型灵活,定长数据类型高效,Mysql处理定长数据类型比变长列快很多,Mysql不允许对变长列(或一个列的可变部分)进行索引,这会极大影响性能。具体类型描述如下表:

    数据类型

    说明

    CHAR

    1~255个字符的定长串,它的长度必须在创建时指定,否则MySQL假定为CHAR(1)

    VARCHAR

    可变长度,最多不超过255字节,如在创建时指定VARCHAR(n),则可存储0~n个字符的变长串

    TINYTEXT

    同TEXT,最大长度为255字节

    MEDUIMTEXT

    同TEXT,最大长度为16K

    TEXT

    最大长度为64K的变长文本

    LONGTEXT

    同Text,最大长度为4GB(纯文本,一般不会到4G)

    ENUM

    接受最多64K个串组成的预定义集合的某个串

    SET

    接受最多64K个串组成的预定

    更多相关内容
  • MySQL的10种常用数据类型

    千次阅读 2022-04-29 14:51:38
    常用数据类型有: 整型(xxxint) 位类型(bit) 浮点型(float和double、real) 定点数(decimal,numeric) 日期时间类型(date,time,datetime,year) 字符串(char,varchar,xxxtext) 二进制数据(xxxBlob...

    MySQL的数据类型

    常用的数据类型有:

    • 整型(xxxint)
    • 位类型(bit)
    • 浮点型(float和double、real)
    • 定点数(decimal,numeric)
    • 日期时间类型(date,time,datetime,year)
    • 字符串(char,varchar,xxxtext)
    • 二进制数据(xxxBlob、xxbinary)
    • 枚举(enum)
    •  集合(set)

    1、整数(xxxint)

    整数列的可选属性有三个:

    • M: 宽度(在0填充的时候才有意义,否则不需要指定)
    • unsigned: 无符号类型(非负)
    • zerofill: 0填充,(如果某列是zerofill,那么默认就是无符号),如果指定了zerofill只是表示不够M位时,用0在左边填充,如果超过M位,只要不超过数据存储范围即可

    原来,在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。 int(3)、int(4)、int(8) 在磁盘上都是占用 4 bytes 的存储空间。

    2、浮点型

    对于浮点列类型,在MySQL中单精度值使用4个字节,双精度值使用8个字节

    MySQL允许使用非标准语法(其他数据库未必支持,因此如果设计到数据迁移,则最好不要这么用):FLOAT(M,D)或DOUBLE(M,D)。这里,(M,D)表示该值一共显示M位,其中D表示小数点后几位,M和D又称为精度和标度。例如,定义为FLOAT(5,2)的一个列可以显示为-999.99-999.99。M取值范围为0~255。D取值范围为0~30,同时必须<=M。

    如果存储时,整数部分超出了范围(如上面的例子中,添加数值为1000.01),MySql就会报错,不允许存这样的值。如果存储时,小数点部分若超出范围,就分以下情况:若四舍五入后,整数部分没有超出范围,则只警告,但能成功操作并四舍五入删除多余的小数位后保存,例如在FLOAT(5,2)列内插入999.009,近似结果是999.01。若四舍五入后,整数部分超出范围,则MySql报错,并拒绝处理。如999.995和-999.995都会报错。

    说明:小数类型,也可以加unsigned,但是不会改变数据范围,例如:float(3,2) unsigned仍然只能表示0-9.99的范围。

    float和double在不指定精度时,默认会按照实际的精度(由实际的硬件和操作系统决定)来显示

    REAL就是DOUBLE ,如果SQL服务器模式包括REAL_AS_FLOAT选项,REAL是FLOAT的同义词而不是DOUBLE的同义词。

    注意:在编程中,如果用到浮点数,要特别注意误差问题,因为浮点数是不准确的,所以我们要避免使用“=”来判断两个数是否相等。如果希望保证值比较准确,推荐使用定点数据类型。

    3、位类型(了解)

    BIT数据类型可用来保存位字段值。BIT(M)类型允许存储M位值。M范围为1~64,默认为1。

    BIT其实就是存入二进制的值,类似010110。如果存入一个BIT类型的值,位数少于M值,则左补0。如果存入一个BIT类型的值,位数多于M值,MySQL的操作取决于此时有效的SQL模式:如果模式未设置,MySQL将值裁剪到范围的相应端点,并保存裁减好的值。如果模式设置为traditional(“严格模式”),超出范围的值将被拒绝并提示错误,并且根据SQL标准插入会失败。

    对于位字段,直接使用SELECT命令将不会看到结果,可以用bin()或hex()函数进行读取。

    4、定点型

    DECIMAL在MySQL内部以字符串形式存放,比浮点数更精确。定点类型占M+2个字节

    DECIMAL(M,D)与浮点型一样处理规则。M的取值范围为0~65,D的取值范围为0~30,而且必须<=M,超出范围会报错。

    DECIMAL如果指定精度时,默认的整数位是10,默认的小数位为0。

    NUMERIC等价于DECIMAL。

    5、日期时间类型

    对于year类型,输入的是两位,“00-68”表示2000-2069年,“70-99”表示1970-1999年。记得比较麻烦,建议使用4位标准格式。

    'YYYY-MM-DD HH:MM:SS'或'YY-MM-DD HH:MM:SS','YYYY-MM-DD'或'YY-MM-DD'格式的字符串。允许“不严格”语法:任何标点符都可以用做日期部分或时间部分之间的间隔符。例如,'98-12-31 11:30:45'、'98.12.31 11+30+45'、'98/12/31 11*30*45'和'98@12@31 11^30^45'是等价的。

    'YYYYMMDD'或'YYMMDD'格式的没有间割符的字符串,假定字符串对于日期类型是有意义的。例如,'19970523'和'970523'被解释为 '1997-05-23',但'971332'是不合法的(它有一个没有意义的月和日部分),将变为'0000-00-00'。

    对于包括日期部分间隔符的字符串值,如果日和月的值小于10,不需要指定两位数。'1979-6-9'与'1979-06-09'是相同的。同样,对于包括时间部分间隔符的字符串值,如果时、分和秒的值小于10,不需要指定两位数。'1979-10-30 1:2:3'与'1979-10-30 01:02:03'相同。

    数字值应为6、8、12或者14位长。如果一个数值是8或14位长,则假定为YYYYMMDD或YYYYMMDDHHMMSS格式,前4位数表示年。如果数字 是6或12位长,则假定为YYMMDD或YYMMDDHHMMSS格式,前2位数表示年。其它数字被解释为仿佛用零填充到了最近的长度。

    一般存注册时间、商品发布时间等,不建议使用datetime存储,而是使用时间戳,因为datetime虽然直观,但不便于计算。而且timestamp还有一个重要特点,就是和时区有关。

    6、字符串型

    char,varchar,text区别

    char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是:

    char如果不指定(M)则表示长度默认是1个字符。varchar必须指定(M)。

    char(M)类型的数据列里,每个值都占用M个字符,如果某个长度小于M,MySQL就会在它的右边用空格字符补足(在检索操作中那些填补出来的空格字符将被去掉;如果存入时右边本身就带空格,检索时也会被去掉);在varchar(M)类型的数据列里,每个值只占用刚好够用的字符再加上一个到两个用来记录其长度的字节(即总长度为L字符+1/2字字节)。[I1]

    由于某种原因char 固定长度,所以在处理速度上要比varchar快速很多,但相对费存储空间,所以对存储不大,但在速度上有要求的可以使用char类型,反之可以用varchar类型来实例。

    text文本类型,可以存比较大的文本段,搜索速度稍慢,因此如果不是特别大的内容,建议使用char,varchar来代替。还有text类型不用加默认值,加了也没用。

    哪些情况使用char更好

    一,存储很短的信息,比如门牌号码101,201……这样很短的信息应该用char,因为varchar还要占个byte用于存储信息长度,本来打算节约存储的现在得不偿失。

    二,固定长度的。比如使用uuid作为主键,那用char应该更合适。因为他固定长度,varchar动态根据长度的特性就消失了,而且还要占个长度信息。

    三,十分频繁改变的column。因为varchar每次存储都要有额外的计算,得到长度等工作,如果一个非常频繁改变的,那就要有很多的精力用于计算,而这些对于char来说是不需要的。

    MyISAM和MEMORY存储引擎中无论使用char还是varchar其实都是作为char类型处理的。

    除此之外,建议使用varchar类型。特别是InnoDB存储引擎。

    7、二进制值类型(了解)

    包括:xxxBLOB和xxxBINARY

    BINARY和VARBINARY类型类似于CHAR和VARCHAR类型,但是不同的是,它们存储的不是字符字符串,而是二进制串。所以它们没有字符集,并且排序和比较基于列值字节的数值值。当保存BINARY(M)值时,在它们右边填充0x00(零字节)值以达到指定长度。取值时不删除尾部的字节。比较时所有字节很重要(因为空格和0x00是不同的,0x00<空格),包括ORDER BY和DISTINCT操作。比如插入'a '会变成'a \0'。

    BLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。分别与四种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT对应有相同的最大长度和存储需求。在TEXT或BLOB列的存储或检索过程中,不存在大小写转换。BLOB和TEXT列不能有默认值。BLOB或TEXT对象的最大大小由其类型确定,但在客户端和服务器之间实际可以传递的最大值由可用内存数量和通信缓存区大小确定。你可以通过更改max_allowed_packet变量的值更改消息缓存区的大小,但必须同时修改服务器和客户端程序。

    8、枚举(ENUM)

    MySql中的ENUM是一个字符串对象,其值来自表创建时在列规定中显式枚举的一列值:

    可以插入空字符串""和NULL(如果运行NULL的话)。

    如果你将一个非法值插入ENUM(也就是说,允许的值列之外的字符串),如果是严格模式,将不能插入,如果是非严格模式,将选用第一个元素代替,并警告。

    ENUM最多可以有65,535个成员,需要2个字节存储。

    当创建表时,ENUM成员值的尾部空格将自动被删除。

    值的索引规则如下:

    来自列规定的允许的值列中的值从1开始编号。

    空字符串错误值的索引值是0。

    NULL值的索引是NULL。

    9、集合(SET)

    SET和ENUM类型非常类似,也是一个字符串对象,里面包含0~64个成员。

    SET和ENUM存储上有所不同,SET是根据成员的个数决定存储的字节数。

    SET和ENUM最主要的区别在于SET类型一次可以选择多个成员,而ENUM则只能选择一个。

    10、特殊的NULL类型

    Null类型特征:

    (1)所有的类型的值都可以是null,包括int、float等数据类型

    (2)空字符串””,不等于null,0也不等于null,false也不等于null

    (3)任何运算符,判断符碰到NULL,都得NULL

    (4)NULL的判断只能用is null,is not null

    (5)NULL 影响查询速度,一般避免使值为NULL

    面试:

    为什么建表时,加not null default '' / default 0

    答:不想让表中出现null值.

    为什么不想要的null的值

    答:(1)不好比较,null是一种类型,比较时,只能用专门的is null 和 is not null来比较.

    碰到运算符,一律返回null

    (2)效率不高,影响提高索引效果.

    因此,我们往往,在建表时 not null default ''/0

    (4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) ;5.0版本以上,varchar(20),指的是20字符)

    展开全文
  • lua 常用数据类型总结

    万次阅读 多人点赞 2022-05-13 17:19:11
    lua 常用数据类型总结

    前言

    在上一篇我们说明了如何基于centos7系统快速搭建lua,本篇将接着说明lua常用的数据类型以及基础语法

    关键字

    下列是 Lua 的关键字,大家在定义常量、变量或其他用户自定义标识符都要避免使用以下这些关键字:

     

     一般约定,以下划线开头连接一串大写字母的名字(比如 _VERSION) 被保留用于 Lua 内部全局变量。这个也是上面我们不建议这么定义标识 符的原因。

    运算符

    Lua 中支持的运算符有算术运算符、关系运算符、逻辑运算符、其他运算符

    算术运算符:
    +   加法
    -   减法
    *   乘法
    /   除法
    %   取余
    ^   乘幂
    -   负号

     例如:

    10+20 --> 30
    20-10 --> 10
    10*20 --> 200
    20/10 --> 2
    3%2 --> 1
    10^2 --> 100
    -10 --> -10
    关系运算符
    ==   等于
    ~=   不等于
      >   大于
      <   小于
    >=   大于等于
      <=   小于等于
    例如
    10==10 -->true
    10~=10 -->false
    20>10 -->true
    20<10 -->false
    20>=10 -->true
    20<=10 -->false
    逻辑运算符
    and 逻辑与 A and B &&
    or 逻辑或 A or B ||
    not 逻辑非 取反,如果为 true, 则返回 false !
    逻辑运算符可以作为 if 的判断条件,返回的结果如下 :
    A = true
    B = true
    A and B -->true
    A or B -->true
    not A -->false
    A = true

     

    其他运算符

    .. 连接两个字符串
    # 一元预算法,返回字符串或表的长度
    例如 :
    "HELLO ".."WORLD" -->HELLO WORLD
    #"HELLO" -->5

    全局变量 & 局部变量
    Lua 语言中,全局变量无须声明即可使用。在默认情况下,变量总是认为是全局的,如果未提前赋值,默认为nil:

     

    要想声明一个局部变量,需要使用 local 来声明

    Lua数据类型

    Lua 8 个数据类型
    nil( 空,无效值 )
    boolean( 布尔, true/false)
    number( 数值 )
    string( 字符串 )
    function( 函数 )
    table (表)
    thread( 线程 )
    userdata (用户数据)
    可以使用 type 函数测试给定变量或者的类型:
    print(type(nil)) -->nil
    print(type(true)) --> boolean
    print(type(1.1*1.1)) --> number
    print(type("Hello world")) --> string
    print(type(io.stdin)) -->userdata
    print(type(print)) --> function
    print(type(type)) -->function
    print(type{}) -->table
    print(type(type(X))) --> string

     

    nil

    nil 是一种只有一个 nil 值的类型,它的作用可以用来与其他所有值进行区分,也可以当想要移除一个变量时,只需要将该变量名赋值为nil, 垃圾回收就会会释放该变量所占用的内存

    boolean

    boolean 类型具有两个值, true false boolean 类型一般被用来做条件判断的真与假。在Lua 语言中,只会将 false nil 视为假,其他的都视为真,特别是在条件检测中0 和空字符串都会认为是真,这个和我们熟悉的大多数语言不太一样

    number

    Lua5.3 版本开始, Lua 语言为数值格式提供了两种选择 :integer( 整型 )和flfloat( 双精度浮点型 )[ 和其他语言不太一样, flfloat 不代表单精度类型 ]

    数值常量的表示方式:

    >4 -->4
    >0.4 -->0.4
    >4.75e-3 -->0.00475
    >4.75e3 -->4750
    不管是整型还是双精度浮点型,使用 type() 函数来取其类型,都会返回的是number
    >type(3) -->number
    >type(3.3) -->number
    所以它们之间是可以相互转换的,同时,具有相同算术值的整型值和浮点型值在Lua 语言中是相等

    string

    Lua 语言中的字符串即可以表示单个字符,也可以表示一整本书籍。在Lua语言中,操作 100K 或者 1M 个字母组成的字符串的程序很常见
    可以使用单引号或双引号来声明字符串
    >a = "hello"
    >b = 'world'
    >print(a) -->hello
    >print(b) -->world
    如果声明的字符串比较长或者有多行,则可以使用如下方式进行声明
    html = [[
    <html>
    <head>
    <title>Lua-string</title>
    </head>
    <body>
    <a href="http://www.lua.org">Lua</a>
    </body>
    </html>
    ]]

    table

    table Lua 语言中最主要和强大的数据结构。使用表, Lua 语言可以以一种简单、统一且高效的方式表示数组、集合、记录和其他很多数据结构。 Lua 语言中的表本质上是一种辅助数组。这种数组比 Java 中的数组更加灵活,可以使用数值做索引,也可以使用字符串或其他任意类型的值作索引( nil )

    创建表的最简单方式:

    a = {}

    创建数组:
    我们都知道数组就是相同数据类型的元素按照一定顺序排列的集合,那么使用table 如何创建一个数组呢 ?

    >arr = {"TOM","JERRY","ROSE"}
    要想获取数组中的值,我们可以通过如下内容来获取 :
    print(arr[0]) nil
    print(arr[1]) TOM
    print(arr[2]) JERRY
    print(arr[3]) ROSE

     

    从上面的结果可以看出来,数组的下标默认是从 1 开始的。所以上述创建数组,也可以通过如下方式来创建
    >arr = {}
    >arr[1] = "TOM"
    >arr[2] = "JERRY"
    >arr[3] = "ROSE"
    上面我们说过了,表的索引即可以是数字,也可以是字符串等其他的内容,所以我们也可以将索引更改为字符串来创建
    >arr = {}
    >arr["X"] = 10
    >arr["Y"] = 20
    >arr["Z"] = 30

    当然,如果想要获取这些数组中的值,可以使用下面的方式
    方式一
    >print(arr["X"])
    >print(arr["Y"])
    >print(arr["Z"])
    方式二
    >print(arr.X)
    >print(arr.Y)
    >print(arr.Z)

     当前table的灵活不进于此,还有更灵活的声明方式

    >arr = {"TOM",X=10,"JERRY",Y=20,"ROSE",Z=30}
    如何获取上面的值 ?
    TOM : arr[1]
    10 : arr["X"] | arr.X
    JERRY: arr[2]
    20 : arr["Y"] | arr.Y
    ROESE?

    function

    Lua 语言中,函数( Function )是对语句和表达式进行抽象的主要方式。
    定义函数的语法为:
    function functionName(params)
    end
    函数被调用的时候,传入的参数个数与定义函数时使用的参数个数不一致的时候,Lua 语言会通过 抛弃多余参数和将不足的参数设为 nil 的方式来调整参数的个数;

     

    可变长参数函数
    function add(...)
      a,b,c=...
      print(a)
      print(b)
      print(c)
    end
    add(1,2,3) --> 1 2 3

    函数返回值可以有多个,这点和 Java 不太一样
    function f(a,b)
      return a,b
    end
    x,y=f(11,22) --> x=11,y=22

    thread

    thread 翻译过来是线程的意思,在 Lua 中, thread 用来表示执行的独立线路,用来执行协同程序

    userdata

    userdata 是一种用户自定义数据,用于表示一种由应用程序或 C/C++ 语 言库所创建的类型

     

    展开全文
  • C51 常见数据类型详解

    万次阅读 2022-07-16 21:38:52
    KEILC51编译器所支持的数据类型如下表所示。1、位变量——bit ... 同sfr一样,sfr16为C51的扩充数据类型,只不过是用来定义单片机的内部16位特殊功能寄存器,并且占用两个内存单元。例如:DPT......

    目录

    背景知识

    数据类型总结

    1、位变量——bit

    2、特殊功能寄存器——sfr

    3、16位特殊功能寄存器——sfr16

    4、可寻址位——sbit

    5、指针类型

    类型转换


    背景知识

    Keil C51是美国Keil Software公司开发的51系列兼容单片机的C语言软件开发系统。

    (1)编译器C51:美国标准优化C交叉编译器C51可以把C源代码转换成可重定位的目标文件

    (2)汇编器A51 :汇编器A51把MCS-51汇编源代码转换成可重定位的目标文件

    (3)连接/重定位器BL51:BL51组合由C51和A51产生的可重定位的目标文件生成绝对目标文件。

    (4)库管理器LIB51:LIB51组合目标文件生成可以被连接器使用的库文件。

    (5)转换器OH51:OH51将绝对目标文件转换成Intel HEX 格式的可执行文件。

    (6)监控程序Monitor-51:用Monitor-51进行目标板调试时,此监控程序驻留在目标板的存储器里。

    (7)实时操作系统RTX-51:实时操作系统RTX-51简化了复杂和对时间要求敏感的软件项目的开发。

    数据类型总结

       KEIL C51 编译器所支持的数据类型如下表所示:

    1、位变量——bit

    bit 位变量是C51 编译器的一种扩充数据类型,它的值是一个二进制位,不是0 就是1。

    (1) 位变量的C51定义

        位变量的C51定义的一般语法格式如下:

              位类型标识符(bit)  位变量名;

        例如:

        bit  direction; /* 把direction定义为位变量 */

        bit  allright ; /* 把allright定义为位变量 */

    (2) 函数可包含类型为"bit"的参数,也可以将其作为返回值。

      例如:

     bit func(bit b0, bit b1) /*变量b0,b1作为函数的参数*/

         {    

     return (b1);     /* 变量b1作为函数的返回值 */

          }

    (3) 对位变量定义的限制。

      位变量不能定义成一个指针,如不能定义:

             bit  * bit_point。

       不存在位数组,如不能定义:

             bit  b_array[ ]

    2、特殊功能寄存器——sfr

    sfr 也是一种扩充数据类型,值域为0~255用于访问51单片机内部的所有特殊功能寄存器。特殊功能寄存器C51定义的一般语法格式如下:

       sfr  sfr-name =  int  constant

    其中“sfr”是定义语句的关键字,其后必须跟一个MSC-51单片机真实存在的特殊功能寄存器名,“=”后面必须是一个整型常数,不允许是带有运算符的表达式,是特殊功能寄存器“sfr-name”的字节地址,这个常数值的范围必须在SFR地址范围内,位于0x80-0xFF。

         如用:sfr P1 = 0x90 定义P1为P1端口在片内的寄存器,在程序中我们用P1 = 255(对P1 端口的所有引脚置高电平)之类的语句来操作特殊功能寄存器。

          C51对常用的特殊功能寄存器都在reg51.h或reg52.h中作了定义。

    3、16位特殊功能寄存器——sfr16

            同sfr一样,sfr16为C51的扩充数据类型,只不过是用来定义单片机的内部16位特殊功能寄存器,并且占用两个内存单元例如:DPTR、定时器T0 和T1。

            sfr16定义语句的语法格式与8位SFR相同,只是"="后面的地址必须用16位SFR的低字节地址,即低字节地址作为"sfr16"的定义地址。

        例如:

           sfr16  T2 = 0xCC /*定时器/计数器2:T2低8位地址为0CCH,T2高8位地址为0CDH*/

    4、可寻址位——sbit

            sbit 也是C51 中的一种扩充数据类型,利用它可以访问芯片内部的RAM 中的可寻址位或特殊功能寄存器中的可寻址位。它有三种定义格式:

    第一种格式

            sbit  bit-name = sfr-name^int constant

       寻址位符号名bit-name(必须是MCS-51单片机中规定的位名称),“=”后的“sfr-name”必须是已定义过的SFR的名字,“^”后的int constant(整常数)是寻址位在特殊功能寄存器“sfr-name”中的位号,必须是0~7范围中的数。

    例如:

       sfr   PSW=0xD0 ; /* 定义PSW寄存器地址为D0H */

       sbit  OV=PSW^2 ; /* 定义OV位为PSW.2,地址为D2H */

       sbit  CY=PSW^7 ;/* 定义CY位为PSW.7,地址为D7H */

    第二种格式:

          sbit  bit-name = int constant^int constant;

    “=”后的int constant为寻址地址位所在的特殊功能寄存器的字节地址,“^”符号后的int constant为寻址位在特殊功能寄存器中的位号。例如:

    sbit OV=0XD0^2 ;/* 定义OV位地址是D0H字节中的第2位 */

    sbit CY=0XD0^7 ;/* 定义CY位地址是D0H字节中的第7位 */

    第三种格式:

            sbit  bit-name = int constant

         “=”后的int constant为寻址位的绝对位地址。例如:

    sbit  OV=0XD2 ;           /* 定义OV位地址为D2H */

    sbit  CY=0XD7 ;             /* 定义CY位地址为D7H */

          注意sbit和bit区别:bit和其他普通变量类型(如int)类似,只不过是定义的是一个位普通变量,而sbit定义的位必需是特殊功能寄存器或内部RAM区中的可寻址位。

    5、指针类型

            指针型数据本身就是一个变量,存放的是指向另一个数据的地址。对于指针的定义和标准C语言相似,例:char * pt;定义一个指向字符型变量的指针。指针变量同样要占据一定的内存单元,在C51 中它的长度一般为1-3个字节。3个字节的指针包括:1个字节存储类型和2个字节偏移地址如下表所示:

    关于C51的变量,这里补充两点:

    (1)除了使用上述数据类型外,程序员还可以根据自己的习惯或爱好对数据类型进行重新定义,定义格式如下:

         typedef  已有的数据类型  新的数据类型;

      例如:

         typedef unsigned char uchar  ;将数据类型unsigned

                                      ;char用uchar代替。

         uchar  c   ;定义一个unsigned char数据变量c

        

    注意:这里并没有增加新的数据类型,只是对已有的某种数据类型用另一种符号表示而已。

    (2)C语言是一种强类型语言。在进行表达式求值或运算时,必须使各个变量的数据类型一致。

    类型转换

    一、用强制类型转换符“()”对数据类型进行显式转换

    二、隐式转换顺序如下:

         bit→char → int → long → float

         signed → unsigned

            如果有几个不同数据类型的数据同时参与运算,先将低级别的数据类型隐式转换为高级别类型后再做运算,并且运算结果为高级别数据类型。

    展开全文
  • 数据库的常用数据类型有哪些?

    千次阅读 2021-03-04 04:48:01
    数据库的常用数据类型有哪些?一、 整数数据类型:整数数据类型是最常用的数据类型之一。1、INT (INTEGER)INT (或INTEGER)数据类型存储从-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,647) ...
  • 1.where?  介绍elasticsearch的数据类型之前,首先需要了解es映射的概念。  es的存储结构是“index.type.document... 即对于elascticsearch数据类型,是在定义索引映射时定义的。   2.what?  https://www...
  • MySQL数据类型--常用数据类型总结

    千次阅读 2016-03-23 15:21:41
    OK,到现在为止,MySQL常用数据类型我都已经整理完了。现在我们来总结一下。 在MySQL中创建表时,需要考虑为字段选择哪种数据类型是最合适的。只有选择了合适的数据类型,才能提高数据库的效率。 1,...
  • MSSQL常用数据类型

    千次阅读 2016-07-22 19:49:27
    1.字符类型 一般常用的varchar,char,text等,其中varchar为可变长,char为定长.varchar使用的好处是可以节约...数据类型 描述 存储空间 char(n) n为1-8000字符之间 n字节 nchar(n) n为1-4000 unicode字符之间
  • 数据结构常用的结构体定义

    千次阅读 2021-01-06 21:24:07
    顺序表结构体定义: typedef struct { int data[maxsize]; int length; }Sqlist; 二.单链表结构体定义: typedef struct LNode { int data; struct LNode *next; }LNode; 三.双链表结构体定义: typedef ...
  • 数据类型(1)类型定义

    千次阅读 2017-12-17 21:43:40
    任何计算机语言在关于数据类型方面都有着相似而又有不同的划分,Python在提供自定义数据类型的同时,也提供一些基础的数据类型: 1、Number型 数值 2、String型 字符串 3、List型 列表 4、Tuple型 元组 5、Dict型 ...
  • JS常用的六种数据类型

    万次阅读 2021-03-25 19:10:38
    JS常用的六种数据类型 在JS中一共有九种数据类型,有六种基本数据类型,分别是:String (字符串)、Number (数值)、Boolean (布尔值)、Null (空值)、Undefined (未定义)、Object(对象) String 字符串 在...
  • 常用的MySQL数据类型

    千次阅读 2021-01-12 05:14:44
    常用的MySQL数据类型是VARCHAR,DECIMAL,DATE,INT,TEXT和TIMESTAMP。第一个:VARCHAR通常用来表示最多为255个字符的变量长度字符串。如果你要储存和处理字母数字类的数据,这种数据类型是最合适的。适用于这类数据...
  • mysql的4种常用、重要的数据类型

    万次阅读 2021-01-19 01:11:55
    为了实现这一目标,它需要我们在数据库系统的常用数据类型有充分的认识。下面我们来看一下mysql的重要数据类型1、数值类型可以划分为数值类型:整型,浮点十进制类型。所谓的“十进制”是指decimal和numeric,他们是...
  • typedef定义数据类型

    千次阅读 2018-08-29 09:47:42
    用typedef重新定义数据类型常用 1.用typedef重新定义普通类型数据。 typedef int count //将int重新命名为count typedef float score //将float重新命名为score   2,用typedef将为指针类型重新命名 ...
  • VHDL的数据类型

    千次阅读 2021-05-27 14:48:46
    整型类型定义了一种在特定整数范围内取值的类型,包括正整数、负整数和零。VHDL标准库提供了一个预定义整型数据类型-integer。integer取值范围是-214748647~214748647,也就是32位的二进制数。在实际设计中,综合...
  • 常用的三种数据类型

    万次阅读 2019-08-09 20:47:27
    在python中,最常用数据类型有三种:整型,字符串,浮点型 一.数据类型 1.整型 int() 整型就是整数,跟我们现实生活中的数学中的整数定义是一样的,是正整数,负整数和零的合称,是没有小数点的数字。 例如:a=...
  • 易语言认识易语言数据类型

    千次阅读 2020-06-21 10:31:29
    易语言的数据类型从数据结构区分,可分为基本数据类型、特殊数据类型。 各种数据存放在磁盘或内存中都有其不同的存放格式,因此就存在不同的数据类型。了解各种数据的特性,对编程开发来说是十分重要。 程序中经常...
  • JS数据类型之基本数据类型

    万次阅读 多人点赞 2019-06-28 16:46:43
    2.js常用的基本数据类型包括undefined、null、number、boolean、string; 3.js的引用数据类型也就是对象类型Object,比如:Object、array、function、data等; 二、基本数据类型特点: 1.基本...
  • C51基本数据类型

    千次阅读 2019-12-19 13:42:36
    C51基本数据类型 C51中基本数据类型主要是指变量类型。变量是指其值可以改变的量。一个变量实质上是代表了内存中的某个存储单元。程序中的变量a,就是指用a命名的某个存储单元,用户对变量a进行的操作就是对该存储...
  • 数据结构的定义

    千次阅读 2020-09-12 17:53:09
    数据结构的定义 提到数据结构,我们不得不想到算法,来看看什么是数据结构 1.如何在书架上摆放图书? 如何杂乱无章的放,书少还好,书多100000本,找私人) 按拼音排序,通过书的首字母找书 按区域分,在按字母分 ...
  • C语言基本数据类型

    万次阅读 多人点赞 2022-03-21 19:06:40
    基本数据类型前言一、整数类型1.整型变量2.整型常量二、实数类型1.实数变量2.实型常量三.字符类型1.字符变量2.字符常量 前言 针对不同的数据,采取不同的存储方式和进行不同的处理。随着处理对象的复杂化,数据...
  • 常用数据结构类型定义

    千次阅读 2011-08-25 19:20:56
    数组 (Array)  在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。...一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不
  • 数据结构、数据类型、抽象数据类型之间的区别

    万次阅读 多人点赞 2019-11-03 20:15:37
    三者的定义(蓝字可忽略): 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合,包括逻辑结构和物理结构。(数据元素是最基本的数据单位,最基本的数据元素是一个二进制位。) 逻辑结构指反映数据...
  • TS 的数据类型

    千次阅读 2022-02-18 14:19:37
    TS 中也和 JS 一样,将所有的数据类型都分为“基本(原始)数据类型”和“引用数据类型”。 一、基本数据类型 number string boolean null undefined void symbol bigint 1、TS 中使用基本数据类型 基础语法: 首先...
  • MySQL数据类型常用字段属性总结

    千次阅读 2021-01-19 21:47:54
    原文链接:http://www.jb51.net/article/55853.htm前言好比C++中...M前言好比C++中,定义int类型需要多少字节,定义double类型需要多少字节一样,MySQL对表每个列中的数据也会实行严格控制,这是数据驱动应用程序成...
  • Python六大基本数据类型

    万次阅读 多人点赞 2022-04-18 21:26:37
    Python中有6个标准的数据类型: ①.Number(数字) ②.String(字符串) ③.List(列表) ④.Tuple(元组) ⑤.Set(集合) ⑥.Dictionary(字典) 一、Number(数字) Python 支持三种不同的数值类型: 整型(int) -...
  • impala完整常用数据类型

    千次阅读 2018-08-13 18:54:15
    因为impala与mysql、Oracle在数据类型上并不完全一致 并且最近会经常用到,所以记录一下 类型 说明 BIGINT 此数据类型存储数值,此数据类型的范围为-9223372036854775808至9223372036854775807.此数据...
  • python定义函数时,指定要传入参数的数据类型 原创小小臭臭g 最后发布于2019-02-13 18:14:49 阅读数 9537 收藏 展开 当你写的函数方法,要被其他人调用时, 你想让他知道传入参数的数据类型, 可以这样定义 def demo...
  • 二叉树的类型定义与基本操作

    千次阅读 2020-10-29 20:25:45
    二叉树的类型定义与基本操作 树结构是一类重要的非线性数据结构,在客观世界中广泛存在。树在计算机领域中也得到了广泛的应用,尤以二叉树最为常用。本文重点讨论二叉树的基本操作。 1. 二叉树的类型定义 二叉树通常...
  • protobuf 数据类型

    万次阅读 2020-10-16 15:04:16
    标准消息类型 proto类型java类型remarkdoubledouble floatfloat int32int使用可变长度编码。 负数无效 - 如果您的字段可能具有负值,请改用sint32。int64long使用可变长度编码。 负数无效 - 如果您的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 970,324
精华内容 388,129
热门标签
关键字:

常用数据类型的定义