Java中的位移运算符
展开全部
移位运算符就是在二进制的基础上对数字进行平移 我们知道 Java中byte short和char类型在进行计算时都是先将其转换为int类型 同样在进行移位运算时也不例外 它们移位后的结果也都会变成int类型 由于int类型为 位的( ) 所以对于byte short char和int进行移位时 规定实际移动的次数最多是 位 如果超过 则按n = n % 来计算 也就是说移位 次和移位 次得到的结果相同 移动long型的数值时(long是 位的) 规定实际移动的次数是移动次数和 的余数 也就是移动 次和移动 次得到的结果相同 您可以亲自动手做下试验 现在我们介绍Java中的三种位移运算符 )《(左移) 运算规则 按二进制形式把所有的数字向左移动对应的位数 高位移出(舍弃) 低位的空位补零 语法格式 需要移位的数字 《 移位的次数 例如 《 则是将数字 左移 位 计算过程 《 首先把 转换为二进制数字(int类型的话为 位 字节 long的话为 位 字节) 然后把该数字高位(左侧)的两个零移出 其他的数字都朝左平移 位 最后在低位(右侧)的两个空位补零 则得到的最终结果是 则转换为十进制是 数学意义 在数字没有溢出的前提下 对于正数和负数 左移一位都相当于乘以 的 次方 左移n位就相当于乘以 的n次方 比如 《 = * )》(带符号右移) 运算规则 按二进制形式把所有的数字向右移动对应位数 低位移出(舍弃) 高位的空位补符号位 即正数补 负数补 语法格式 需要移位的数字 》 移位的次数 例如 》 则是将数字 右移 位 计算过程 的二进制形式为 然后把低位的最后两个数字移出 因为该数字是正数 所以在高位补零 则得到的最终结果是 转换为十进制是 数学意义 右移一位相当于除 右移n位相当于除以 的n次方 )>>>(无符号右移) 运算规则 按二进制形式把所有的数字向右移动对应位数 低位移出(舍弃) 高位的空位补零 其他结构和》相似 位移运算通常用来对代码进行速度上的优化 用它来代替乘除法将是很好的选择 下面来举几个例子 希望对大家使用位移运算符有所帮助 用位移运算符来实现 i / = + + 所以对i / 可以这样来表示 ( i 《 ) + ( i 《 ) + ( i 《 ) 写出( q 《 ) + ( q 《 )实现的代码 原式 = q * ^ + q * ^ = q * ( + ) = q * lishixinzhi/Article/program/Java/hx/201311/26978
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询