SET类型的存储需求问题
SET最多只有64个成员,为什么需要1、2、3、4或8个字节,64个成员一个字节不就足够了吗?
0
收起
正在回答 回答被采纳积分+1
1回答
芝芝兰兰
2019-10-28 17:04:22
同学你好。因为SET的每个选项值相当于对应一个二进制位
第1个选项、第二个选项、第三个选项、第四个选项...,依次是用2的0,1,2,3 ... 64次方表示的
转换为二进制是 0000 0001(1=2的0次方),0000 0010(2=2的1次方),0000 0100(4=2的2次方),0000 1000(8=2的3次方)
一个字节最多表示到第1000 0000(128=2的7次方)也就是第8个选项。
所以要表示64个需要8个字节,也就是 8*8 位呢~
之所以这么表示,是为了设置SET选项方便。由于SET选项本身就是可以多选的,设置SET类型的值的时候,可以借用10进制数转为2进制来表示是哪些选项,如想要设置C、D、E,转换为二进制为0001 1100,即设置SET值为28同样可以得到CDE的结果
如果解答了同学的疑问,望采纳~
祝学习愉快~
Java数据库开发与实战应用2018版
- 参与学习 人
- 提交作业 277 份
- 解答问题 4297 个
Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星