`
kanpiaoxue
  • 浏览: 1777725 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

位移运算

    博客分类:
  • java
 
阅读更多

用最有效率的方法算出2乘以8等於几? (这是一道面试题)

2 << 3,

因为将一个数左移 n 位,就相当于乘以了2的n 次方,那么,一个数乘以8只要将其左移3位

即可,而位运算cpu 直接支持的,效率最高,所以,2乘以8等於几的最效率的方法是2 << 3。

/**
 * 
 * <<	(左移)
 * 将一个运算符对象的各二进制位全部左移诺干位(左边的二进制位丢弃,右边补0
 * 操作数每左移一位,相当于该数乘以2 
 * 将一个数左移 n 位,就相当于乘以了2的n 次方
 */
System.out.println((3<<4) == (3 * (Math.pow(2, 4))));//true
System.out.println((3<<4));// 3 * 16 == 48
System.out.println((10<<4) == (10 * (Math.pow(2, 4))));//true
System.out.println((10<<4));//10 * 16 == 160

/**
 * >>	(右移) 
 * 将一个数的各二进制位全部右移诺干位,正数左补0,负数左补1,右边丢弃。
 * 操作数每右移一位,相当于该数除以2 
 */
System.out.println((14>>2) == Math.floor((14 / (Math.pow(2, 2)))));//true
System.out.println(14 / (Math.pow(2, 2)));// 3.5
System.out.println((14>>2));// 3 -->向下取整

System.out.println((14>>4) == Math.floor((14 / (Math.pow(2, 4)))));//true
System.out.println(14 / (Math.pow(2,4)));// 0.875
System.out.println((14>>4));// 0 -->向下取整

 

分享到:
评论

相关推荐

    计算机组成原理 带位移运算模型机的设计与实验报告

    计算机组成原理是理解计算机系统内部工作机制的关键课程,其中带位移运算的模型机设计与实验是其重要组成部分。位移运算在计算机科学中扮演着重要角色,它涉及到数据的移动和位操作,广泛应用于算术运算、逻辑运算...

    Windows关于整数二进制位移运算的MFC程序源代码

    在编程领域,特别是C语言和其派生的MFC(Microsoft Foundation Classes)框架中,整数的二进制位移运算是一种重要的算术操作。位移运算符在处理位模式、数据存储、位掩码以及优化计算等方面发挥着关键作用。本程序源...

    数值位移及异或运算计算器

    简单小工具,输入十进制数值计算结果,C# WINFORM版,非源码

    C语言进阶学习资料,关于预处理,文件处理,结构体,位移运算的学习 大学生期末复习资料,程序设计课程复习资料

    本资料集为C语言进阶学习者提供了全面的预处理、文件处理、结构体和位移运算的知识。内容涵盖了从基础语法到高级应用的各个方面,旨在帮助学习者深入理解C语言的核心概念和技术细节。 适用人群 本资料适合具有C语言...

    不错的主要用于加密的vbs(asp)位移运算类

    位移运算在编程中是一种非常基础且重要的操作,特别是在加密算法中。VBS(Visual Basic Script)和ASP(Active Server Pages)是微软开发的脚本语言,常用于Web开发。这个位移运算类是为了在VBS和ASP环境中进行数据...

    运算器移位运算实验实验报告.pdf

    运算器移位运算实验是计算机组成原理中一个重要的实践环节,旨在帮助学生深入理解运算器的基本构造和数据处理流程。在这个实验中,学生需要掌握如何使用简单的运算器进行数据传送和移位操作,同时验证移位控制的功能...

    wxh 指针,算术,位移运算开发包部份示例代码[AsmInVB].

    - **内嵌汇编**:当使用内嵌汇编指令时,这些函数会直接调用相应的汇编指令,如 SHR 和 SHL,以更快的速度完成位移操作。 ### 4. Assign 和 AssignZero 子程序 - 指针操作 这两个子程序用于进行指针操作,分别是...

    【循序渐进学.java】从入门到精通.第20讲-二进制.位运算.位移运算.zip

    绝对韩顺平老师的讲解视频!教学文件打包太大,就一个一个的上传了! avi格式的,最好用KMPlayer来播放,下载地址:https://www.kmplayer.com/home 后续还上传,韩顺平老师教学的源代码!

    计算器(可进行移位求余等运算)

    一个简易的计算器(可进行移位求余等运算)

    shell 基本计算、逻辑运算、位运算详解

    以下面的格式提供运算表达式:$(( expression )) $ echo $((5*(3+3))) 30 $ result = $(($myvar-10)) shell提供方便的数之间的进制转换: $ echo $((013))#八进制 $ echo $((0xA4))#十六进制 还可以使用以下格式指定...

    oracle位运算

    本文将详细介绍Oracle中的基本位运算操作,包括与、或、异或、位移等,并提供相应的SQL语句和函数定义。 #### 二、基本位运算 ##### 1. 与 (AND) 与运算符用于比较两个数值的每一位,并返回结果。如果对应位置上...

    10_02.rar_10_02_java 位移

    这个名为"10_02.rar_10_02_java 位移"的压缩包文件,很可能包含了一个Java项目,该项目运用了位移运算来实现特定的功能,这里特别提到了"中点位移法",这可能与分形几何图形的生成有关。 中点位移法(Midpoint ...

    Python一个随机生成四则运算题目的小程序

    这段Python代码实现了一个随机出题的四则运算程序。它包含以下几个函数: 1. `generate_random_number()`: 生成一个随机整数,范围在1到100之间。 2. `generate_random_operator()`: 从加减乘除四个运算符中随机...

    单片机算数运算

    5. **位运算**:位运算,如与(AND)、或(OR)、异或(XOR)和非(NOT),在单片机编程中非常常见,它们可以用来进行数据的位级操作,例如设置或清除特定位,以及进行位移运算。 6. **浮点运算**:如前所述,浮点...

    04_位运算1

    本文将深入探讨位运算的概念,包括与运算、或运算、异或运算,以及位移运算如左移(shl)和右移(shr),并举例说明它们在实际中的应用。 首先,我们来看“与”运算。与运算符是"&",它遵循“全1得1,有0得0”的...

    位运算学习

    5. **位移运算**:左移()和右移(&gt;&gt;)操作可以改变数的位表示。左移一位相当于乘以2,右移一位相当于除以2(对于无符号整数)。在有符号整数的右移中,高位的填充方式取决于具体实现,可能是0(逻辑右移)或符号位...

    alu_16种算术运算_16种逻辑运算_行为级alu实验_啥叫行为级Alu_alu_

    对于16种算术运算,这可能包括基本的加、减、乘、除,以及它们的不同变体,例如带符号的和无符号的运算,以及位移运算。位移运算在处理二进制数据时非常有用,因为它们可以实现快速的乘法和除法。 同样,16种逻辑...

    C#位移的介绍与例子

    其实很简单。。。 C#位移运算符: 左移:&lt;&lt; 右移:&gt;&gt; 位移理解可能简单一些:其实就是数据转换成二...下面用一个曾经回答一个网友的提问来理解一下位移的运算 题目:把89右位移一位: 代码如下:string flag = Co

    JAVA位运算.pdf

    以上代码演示了各种位运算符的功能,包括按位与、按位或、按位异或、按位非以及位移运算。这些操作在实际编程中可用于高效的数据处理和算法实现,尤其在底层系统编程或性能敏感的场景中尤为重要。掌握这些位运算技巧...

    C#2010 按位运算.pdf

    按位运算主要有三种类型:按位逻辑运算、按位取反运算和按位位移运算。 1. **按位逻辑运算**: - **按位与(&)**:对两个整数的二进制表示进行逐位逻辑与运算,如果对应位都是1,则结果位为1,否则为0。 - **按位...

Global site tag (gtag.js) - Google Analytics