位运算-<<和>>遇到的坑

本文讨论了在使用位运算符如<<和>>时,如何通过添加括号来确保正确的运算顺序。以10为例,正确表示非负整数先除以2再减1的方法是(arr>>1)-1,而如果不加括号(arr>>1)-1,则会先执行减法操作导致错误。理解运算符优先级对于避免编程中的常见错误至关重要。

涉及到<<和>>运算, 记得得加上括号,防止运算顺序出错

例如想要非负整数先除以2再减1

int arr = 10; 
arr = (arr>> 1) - 1

若是

int arr = 10;  
arr = arr>> 1 - 1

则会先运算1-1导致出错

Exception in thread "main" java.lang.ExceptionInInitializerError at io.mycat.MycatStartup.main(MycatStartup.java:53) Caused by: io.mycat.config.util.ConfigException: java.lang.RuntimeException: error,check your partitionScope definition. at io.mycat.config.loader.xml.XMLRuleLoader.load(XMLRuleLoader.java:95) at io.mycat.config.loader.xml.XMLRuleLoader.<init>(XMLRuleLoader.java:64) at io.mycat.config.loader.xml.XMLSchemaLoader.<init>(XMLSchemaLoader.java:74) at io.mycat.config.loader.xml.XMLSchemaLoader.<init>(XMLSchemaLoader.java:87) at io.mycat.config.ConfigInitializer.<init>(ConfigInitializer.java:74) at io.mycat.config.MycatConfig.<init>(MycatConfig.java:72) at io.mycat.MycatServer.<init>(MycatServer.java:144) at io.mycat.MycatServer.<clinit>(MycatServer.java:96) ... 1 more Caused by: java.lang.RuntimeException: error,check your partitionScope definition. at io.mycat.route.util.PartitionUtil.<init>(PartitionUtil.java:69) at io.mycat.route.function.PartitionByString.init(PartitionByString.java:99) at io.mycat.config.loader.xml.XMLRuleLoader.loadFunctions(XMLRuleLoader.java:209) at io.mycat.config.loader.xml.XMLRuleLoader.load(XMLRuleLoader.java:89) ... 8 more <tableRule name="table_prefix_rule"> <rule> <columns>table_prefix</columns> <!-- 分片键为表名前缀 --> <algorithm>str_hash</algorithm> </rule> </tableRule> <function name="str_hash" class="io.mycat.route.function.PartitionByString"> <property name="partitionCount">3</property> <!-- 分库数量 --> <property name="partitionLength">3</property> </function>
09-09
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值