java 乘法 位移_Java:移位实现的乘除法
以下文章仅用于记录工作学习过程中的学习心得。
在Java的运算中,移位实现的乘除法运算比直接乘除法的效率高得多
符号:
<
>> : 除
举例子:
a= a * 8 = a * 2^3 <==> a = a << 3
b= b / 8 = a / 2^3 <==> b = b >> 3
说明:
除2 = 右移1位 乘2 = 左移1位
除4 = 右移2位 乘4 = 左移2位
除8 = 右移3位 乘8= 左移3位
......结论:通常如果需要乘以或者除以2的n次方,都可以用移位的放代替
大部分的C编译器,用移位的方法得到代码比调用乘除法子程序生成的代码效率高。实际上,只要是乘以或除以一个整数,均可以用移位的方法得到结果,
如:
分析a = a * 9可以拆分成 a = a * ( 8 + 1 ) 即 a = a * 8 + a * 1
因此可以改为: a = ( a << 3 ) + a
分析a = a * 7可以拆分成 a = a * ( 8 - 1 ) 即 a * 8 - a * 1
因此可以改为: a = ( a << 3 ) - a
关于除法读者可以类推, 此略.
Java中可以运用移位的数据类型
Char 、short 、int 、long 、
unsigned char 、unsigned short 、unsigned int、unsigned long
Java中无法进行运用移位的数据类型
Float 、double、boolean
java 乘法 位移_Java:移位实现的乘除法相关推荐
- java 乘法 位移_java 位移运算与乘法运算
对于 JAVA 编程中,适当的采用位移运算,会减少代码的运行时间,提高项目的运行效率.这个可以从一道面试题说起: 问题: 用最有效率的方法算出2 乘以8 等於几?" 答案:2 << ...
- java 乘法 位移_Java 使用位移运算实现乘法
import java.util.Scanner; /** * @author Gaojie * @date 2018/7/23 10:15 * 程序开发中的乘法运算一般是通过 * 或 BigDeci ...
- java 乘法 位移_用移位实现乘除法运算
用移位实现乘除法运算 a=a*4; b=b/4; 可以改为: a=a<<2; b=b>>2; 说明: 除2 = 右移1位 乘2 = 左移1位 除4 ...
- java乘法表_Java中四种9*9乘法表的实现方式(附代码)
前言: 初学java,实现99乘法表是必学必会的内容. 需求 : 分别写出上下左右,对应四个角的乘法表. 思路: 可以先打印出*星星,形成一个直角三角形,然后再替换成乘法公式. 代码如下: publi ...
- Java二进制位运算、移位运算、、
为什么80%的码农都做不了架构师?>>> Java二进制位运算.移位运算 思考题 1.请看下面的代码段,回答a,b,c,d,e结果是多少? public static void ...
- 用java的io做一个代码计数器,如何制作Java页面计数器_java
大庆采油六厂采油工艺研究所 王兵 王波 常常逛WWW的人,一定对许多起始页上的计数器感兴趣.每当你光临某个站点的起始页时,它的计数器就很亲切地告诉你,从某年某月某日开始,你是第几位光临的人.你可能也想 ...
- 【源码+图片素材+详细教程】Java游戏开发_Java开发经典游戏飞翔的小鸟_飞扬的小鸟_Java游戏项目Flappy Bird像素鸟游戏_Java课程设计项目
课程目标: 1.通过本课程的学习巩固Java的相关基础知识,例如循环判断,数组和集合的使用,对象的继承,接口的实现,窗口的创建,事件监听,图形绘制. 2.完成小鸟的移动,管道自动生成.碰撞死亡,计分系 ...
- 【源码+教程】Java桌球游戏_Java初级项目_Java练手项目_Java项目实战_Java游戏开发
今天分享的Java开源游戏项目是桌球游戏,初学者也可以用来练习喔~课程详细讲解了一个桌球游戏的编写思路和流程,即使你刚学Java没多久,也可以跟随该教程视频完成属于你自己的桌球游戏!同时,还可以加深和 ...
- 【源码+项目部署】Java课程设计项目_Java人力资源管理系统
对就业和毕业都有帮助的Java实战项目来咯--人力资源管理系统! 人力资源管理系统 |Java项目2小时上手编写_源码+数据库拿走不谢!Java实战项目_Java开发https://www.bilib ...
最新文章
- 2021年大数据Hadoop(十):HDFS的数据读写流程
- unexpected symbol、unexpected end of input
- 第二阶段个人博客总结8
- java务必让常量的值在运行期保持不变
- 电机控制系统php,电机控制系统的未来发展变化趋势
- leetcode886.PossibleBipartition
- html中图片连续替换,C# 批量替换html中的图片 示例
- Quick-cocos2d-x luabinding
- DML、DDL的概念与区别
- 中位数和顺序统计,以线性期望时间做选择
- php如何实现自动加载mp3,如何简单的实现php自动加载
- office 2021安装教程+下载
- css居中对齐的几种方式
- H5页面唤起指定app或跳转到应用市场
- 软件安全开发 - 流程规范
- base64 文件格式判断 图片类型判断 js
- hdu 2881 Jack's struggle(DP)
- 《java程序员面试笔试宝典》学习笔记
- ROS urdf rviz xacro文件中的<inertia>详解
- 获得用户输入一个整数N,计算并输出N的32次方:
热门文章
- session和cookie的区别 session失效
- detectron2 demo cuda10.0 py3.6
- htonl() htons()及inet_ntoa() inet_addr()的用法
- 游戏计算机软著登记证书,“VR沙盘游戏心理疗法软件”取得计算机软件著作权登记证书...
- 机器学习与计算机视觉(slam技术)
- mfc ajax爬虫,另辟蹊径,爬取Ajax数据内容
- c语言实现 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
- 量子计算机迷宫,工程杰作诞生可编程的光学量子计算机
- python自制语音识别_今天的语音识别,我们就用Python来做,从基础的知识到实践的运用...
- java xml文件无法打开,java – 无法打开beans.xml(配置文件)因为不存在