位运算:直接对整数在内存中的二进位进行操作的运算位运算包括与,或,非,异或,同或,移位等,位运算是最接近机器码的运算,在算法当中使用位运算会带来很大的便利注:java十进制转二进制:Integer.toBinaryString(int n) ;
1.位运算与逻辑运算的区别运算位运算逻辑运算与&&&或|||非~~2.与运算的使用与 : &
指定位清零指定位与0与运算,
基本概念真值:带符号位的机器数对应的真正数值称为机器数的真值0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –000 0001 = –1原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值PS:正数的原、...
转载
2014-10-01 17:22:00
90阅读
2评论
刚刚学算法的时候,看到dalao处处用位运算,感觉真的太玄学了,然后直到今天才深入理解了下位运算的操作,其实并没有多么玄学,只不过是利用了计算机本身的性质罢了。 基本概念: 真值: 带符号位的机器数对应的真正数值称为机器数的真值0000 0001的真值 = +000 0001 = +1,1000 0
原创
2021-10-22 09:34:06
155阅读
一.简介随着JDK的发展以及JIT的不断优化,语法糖越来越丰富了,程序用了太多了看似高级的用法,易读性提高很多,那么效率呢?很多时候计算可以转换位运算,提高性能和节约空间,很多组件都用到了,比如HashMap、BitSet、ProtocolBuf等等,本文验证一些位运算的用法。二.基础2.1 位运算符Java整型数据类型有:byte、char、short、int、long。一个字节占8位。...
原创
2021-08-31 09:14:34
451阅读
一.简介随着JDK的发展以及JIT的不断优化,语法糖越来越丰富了,程序用了太多了看似高级的用法,易读性提高很多,那么效率呢?很多时候计算可以转换位运算,提高性能和节约空间,很多组件都用到了,比如HashMap、BitSet、ProtocolBuf等等,
原创
2022-02-14 16:52:13
55阅读
1. 概述 本文探讨如何在MSSQL、Sybase,及Oracle三种数据库中进行位运算。由于系统设计原因,MSSQL和Sybase可以很好的支持位运算,但是Oracle的愿生类型并不支持位运算。本文将介绍MSSQL和Sybase位运算的不同之处,然后介绍如何在Oracle中模拟位运算。 2. MSSQL和Sybase中的位运算2.1 支持位运算的数据类型 通常,对于应用程序来说,位
转载
2023-11-24 08:17:45
106阅读
当数据库查询时间过长 我们就要考虑对数据库查询进行优化设计数据表时对数据类型的优化设计原则: 越小越好:确定数据精度后,选择占据空间更小的数据类型 比如布尔型的可以使用TINYINT 而不是INT 简单: 选择需要更少cpu时钟,int比string消耗少,使用内置date/timestamp而非string 避免将默认值设为null: MySQL对于null的列很难优化并且使得index策略更加
转载
2024-06-14 13:43:30
20阅读
MySQL之查询优化(EXPLAIN)查询优化器查询瓶颈执行计划(EXPLAIN)作用执行计划字段介绍结构解释1.`id `2. `select_type`3. table4. `type`5. possible-keys6. `key`7. key_len8. `ref`9. rows10. ExTra覆盖索引(Covering index)案例分析查询优化器查询瓶颈CPU饱和(读取数据至内存
转载
2023-12-12 13:09:04
88阅读
java运算优先级 利用短路现象: 在程序设计时使用&&和||运算符,不建议使用&和|运算符。 四:位运算符: 位运算是以二进制位为单位进行的运算,其操作数和运算结果都是整型值。 位与’&’,位或’|’,位非’~’,位异或’^’,右移’>>’,左移’<<’,0填充的右移’>>>’ 位运算的位与’&’,位或’
转载
2023-06-26 16:02:44
200阅读
对于高性能数据库来说:库表结构优化、索引优化和查询优化需要齐头并进 1.为什么查询的速度会慢?查询其实就是一系列的子任务组成,优化查询实际上就是:要么消除一些子任务,要么减少子任务执行的次数。 2.慢查询基础:优化数据访问(1)是否向数据库请求了不需要的数据1)查询了不需要的数据: 比如我们通过select 查询出了大量的结果,获取前面的N行之后就关闭结果集,实际上MySQL会查询出所有的结果集
转载
2024-02-04 00:08:45
38阅读
在mysql中,如果某条数据与其它数据存在一对多的关系,一般我们很自然的就会想到建立一个关系表。例如有一个景点信息的数据表,其结构如下:idint(主键)namevarchar(景点名)provinceint(省份)cityint(城市)每个景点包含很多属性,例如适合旅游的月份,我们一般的做法可能有两种:一种是增加一个varchar字段,每个月份之间用一个特殊符号分隔保存,例如“1,2,3,11,
转载
2023-08-20 16:45:31
126阅读
如果你不知道什么是位运算的话, 那么请你先去看看基础的C语言教程吧。 与运算 a & b ,
或运算 a | b ,
异或运算 a ^ b ,
或者
你也可以将 与运算理解为 + 法
例如
1|2 = 3 (1+2 = 3)
1|2|4 = 7 (1+2+4 = 7)
将 异或运算理解为 - 法
例如
转载
2023-05-30 16:43:07
131阅读
今天看代码遇到位运算符,因为不常用已经忘记了,所以复习一下。Java位运算符包括:位与'&',位或'|',位非'~',位异或'^',右移'>>',左移'<<',右移'>>>' 。位运算是以二进制位为单位进行的运算,其操作数和运算结果都是整型值。运算需要用到一些二进制知识,稍微回顾一下。比较详细,这里不再赘述了。下面代码中有具体计算过程(稍需注意的是
转载
2023-11-29 08:38:09
113阅读
二进制位运算符概述二进制位运算符用于直接对二进制位进行计算,一共有7个。二进制或运算符(or):符号为|,表示若两个二进制位都为0,则结果为0,否则为1。二进制与运算符(and):符号为&,表示若两个二进制位都为1,则结果为1,否则为0。二进制否运算符(not):符号为~,表示对一个二进制位取反。异或运算符(xor):符号为^,表示若两个二进制位不相同,则结果为1,否则为0。左移运算符(l
转载
2024-03-24 10:05:13
445阅读
索引索引可以高效获取数据,避免对数据进行全盘扫描(查询速度很慢),索引就是一种数据结构(树) MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。如下面的示意图所示 :此时的索引树是一个平衡
转载
2024-08-17 15:18:08
72阅读
位运算是将给定的操作数转化为二进制后,对各个操作数每一位都进行指定的逻辑运算,得到的二进制结果转换为十进制数后就是位运算的结果。
转载
2023-05-18 21:02:19
181阅读
一.问题场景工作中经常遇到多选值存储问题,例如:用户有多种认证方式,密码认证、短信认证、扫码认证等,一个用户可能只开启了其中某几种认证方式。二. 场景分析比较容易理解的两种实现方式,多字段存储、单个字段拼接存储。1.多字段存储每种认证方式用一个字段存储,0表示未开启,1表示已开启。 缺点:每增加一种认证方式都需要添加一个表字段,扩展性差。2.单字段拼接单字段存储,已开启的认证方式用逗号(或其他分割
转载
2023-10-26 11:04:04
110阅读
前言:虽说这是件小事儿,但本宝宝思前想后,还是为它留下一笔,嘿嘿。反正写博客不浪费纸和笔!好久没有开启我的逗比模式了,我亲爱的乖徒弟DBA,DBB,DBAA等,好久不见你们,遥祝幸福快乐+DB。整个事情其实使这样的,最近的项目中,有一个表,最终是这样的:一共3位,每一位的取值是1和0(额,后来还有2,哈哈哈),1代表已认证,0代表未认证。 当时为什么这么设计呢,是因为会高频率的出现 XXX 身份
转载
2023-06-04 16:18:50
203阅读
求下面程序结果:#includeusing namespace std;int main(){ int x=2,y,z; x*=(y=z=5); cout<<x<<endl; x==(y=z); cout<<x<<endl; x=(y==z); cout<<x<<endl; x=(y&
原创
2021-06-04 15:47:02
380阅读
索引(Index)索引是在存储引擎层实现的,而不是在服务器层实现的,所以不同存储引擎具有不同的索引类型和实现。索引是一种用于快速查询和检索数据的数据结构。常见的索引结构有: B+树和 Hash。索引的作用就相当于目录的作用。索引的优缺点:优点 :使用索引可以大大加快 数据的检索速度(大大减少检索的数据量), 这也是创建索引的最主要的原因。通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。缺
转载
2023-11-11 18:56:09
60阅读