美文网首页
脑补二进制字符串

脑补二进制字符串

作者: YouMyGod | 来源:发表于2019-01-24 13:36 被阅读0次

概述

  • 二进制字符串一般用于存储二进制的大对象,二进制字符串类型有BIT、BLOB、BINARY和VARBINARY。

二进制字符串和普通字符串的区别和联系

  • 与字符串一样,二进制字符串也是一个字节序列。但与通常包含文本格式信息的字符串不同,二进制串用于存储非传统数据,如图像、音频和视频文件、程序可执行文件等。二进制字符串可以用于与字符串类似的目的(例如,以Microsoft Word格式存储文档),但两种数据类型不兼容;两者的差别如同文本和同一文本的照片
  • 在实际操作中,一般不建议将二进制的大文件存储在数据库中,而是将大对象的物理位置存储在数据中,但是有特殊需要的情况下,还是有将二进制大对象存储在数据库的可能。
  • 二进制字符串和普通字符串的区别有两个:首先,二进制字符串完全可以存储字节零值,以及其他“不可打印”的字节(定义在32到126范围之外的字节)。普通字符串不允许存储字节零值.并且也不允许存储那些不符合选定的字符集编码的非法字节值或字节序列 第二,对二进制字符串的处理实际上就是处理字节,而对字符串的处理,则取决于区域设置。简单地说,二进制字符串适用于存储那些程序员认为是“原始字节”的数据,比如图片内容,而字符串则适合存储文本。

二进制字符串的类型

MySQL中的二进制数据类型有:BIT、BINARYVARBINARY、TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB

11.png

Bit 类型

BIT类型是位字段类型。M表示每个值的位数,范围为l~64。如果M被省略,默认为1。如果为BIT(M)列分配的值的长度小于M位,在值的左边用0填充。例如,为BIT(6)列分配一个值b’101’,其效果与分配b'000101’相同。BIT数据类型用来保存位字段值,例如:以二进制的形式保存数据13,13的二进制形式为1101,在这里需要位数至少为4位的BIT类型,即可以定义列类型为BIT(4)。大于二进制ll ll的数据是不能插入BIT(4)类型的字段中的。

BINARY和VARBINARY类型

BINARY和VARBINARY类型类似于CHAR和VARCHAR(如果不知道CHAR和VCHAR的区别,请点击char vs vchar)不同的是它们包含二进制字节字符串。其使用的语法格式如下:
列名称 BINARY(M)或者VARBINARY(M);
BINARY类型的长度是固定的,指定长度之后,不足最大长度的,将在它们右边填充‘\0’补齐以达到指定长度。例如:指定列数据类型为BINARY(3),当插入‘a’时,存储的内容实际为“a\0\0”,当插入“ab”时,实际存储的内容为“ab\0”,不管存储的内容是否达到指定的长度,其存储空间均为指定的值M。
VARBlNARY类型的长度是可变的,指定好长度之后,其长度可以在0到最大值之间。例如:指定列数据类型为VARBINARY(20),如果插入的值的长度只有10,则实际存储空间为10加l,即其实际占用的空间为字符串的实际长度加l。

BLOB类型

BLOB是一个二进制大对象,用来存储可变数量的数据。BLOB类型分为4种:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB,它们可容纳值的最大长度不同,如表所示。

11.png
BLOB列存储的是二进制字符串(字节字符串);TEXT列存储的是非二进制字符串(字符字符串)。BLOB列没有字符集,并且排序和比较基于列值字节的数值;TEXT列有一个字符集,并且根据字符集对值进行排序和比较。

相关文章

  • 脑补二进制字符串

    概述 二进制字符串一般用于存储二进制的大对象,二进制字符串类型有BIT、BLOB、BINARY和VARBINARY...

  • 配对交换

    题目: 题目的理解: 将整型转化为二进制的字符串,然后获取奇数位和偶数位,再组装成字符串。注意:二进制字符串前补0...

  • iOS 字典 字符串和二进制的相互转换

    二进制转化为字符串 二进制数据转成字典 把字符串再转变为二进制流 字典转成二进制数据 字典转json格式字符串 j...

  • 【橙子 talk】“脑洞”大开

    脑洞是什么? 度娘说:脑洞是从脑补衍生出来的词。因为有脑洞,所以需要脑补。脑补通常是指在头脑中对某些情节进行脑内补...

  • 二进制的字符串形式加法

    要求: @input String a 字符串形式的二进制数 @input String b 字符串形式的二进制数...

  • LeetCode 每日一题 [28] 二进制求和

    LeetCode 二进制求和 [简单] 给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串...

  • Leetcode 67.Add Binary

    题目 题目大意:给定两个二进制数的字符串字符串,返回它们的和的二进制字符串。 开始的思路是将二进制转换成十进制相加...

  • 颠倒二进制位

    题目: 题目的理解: 将整数转化为二进制的字符串,然后前补0后转化为数组,颠倒数组后再转化为整数。 python实...

  • 字符串知识点总结

    用二进制来编码字符串“abcdabaa”,需要能够根据编码,解码回原来的字符串,最少需要()长的二进制字符串?答案...

  • 脑补

    公司搞了个活动,要求演讲和诗朗诵,全员参与。刚下通知,我自己已经脑补了稿件,脑补了现场,想象到了自己的紧张,导致情...

网友评论

      本文标题:脑补二进制字符串

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