zoukankan      html  css  js  c++  java
  • 移位运算符的限制

    Java 移位运算符只能用于整型,不能用于浮点型。也就是说,>>、>>>和<<这 3 个移位运算符并不适合所有的数值类型,它们只适合对 byte、short、char、int 和 long 等整型数进行运算。除此之外,进行移位运算时还有如下规则:

    • 对于低于 int 类型(如 byte、short和 char)的操作数来说,总是先自动类型转换为 int类型后再移位。
    • 对于 int 类型的整数移位,例如 a >> b,当 b > 32 时,系统先用 b 对 32 求余(因为 int 类型只有 32 位),得到的结果才是真正移位的位数。例如,a >> 33 和 a >> l 的结果完全一样,而 a >> 32 的结果和 a 相同。
    • 对 long 类型的整数移位时,例如 a >> b,当 b > 64 时,总是先用 b 对 64 求余(因为 long 类型是 64 位),得到的结果才是真正移位的位数。 当进行位移运算时,只要被移位的二进制码没有发生有效位的数字丢失现象(对于正数而言,通常指被移出的位全部都是 0),不难发现左移 n 位就相当于乘以 2n,右移则相当于除以 2n。这里存在一个问题:左移时,左边舍弃的位通常是无效的,但右移时,右边舍弃的位常常是有效的,因此通过左移和右移更容易看出这种运行结果,并且位移运算不会改变操作数本身,只是得到一个新的运算结果,原来的操作数本身是不会改变的。
  • 相关阅读:
    MySql 定时完成备份
    smarty插件
    PHP字符串函数小结
    eclipse搭建maven project的spring4 spring mvc mybatis
    C#数组存入引用类型
    C#数组
    【转】Linus:利用二级指针删除单向链表
    [LeetCode] Reverse Linked List II
    ubuntu配置git
    mint安装Node.js
  • 原文地址:https://www.cnblogs.com/sakura579/p/13844216.html
Copyright © 2011-2022 走看看