java面试小知识Day001-2

用最有效率的方法计算 2 乘以 8

2 << 3(左移 3 位相当于乘以 2 的 3 次方,右移 3 位相当于除以 2 的 3 次 方)。

讲解:
  1. 二进制表示:
    首先,让我们看看数字2在二进制中的表示:
    2 = 0010 (二进制)

  2. 左移操作:
    当我们对2进行左移3位操作时,每一位都向左移动3次,右边用0填充:
    0010 (原始数字2)
    左移1位:0100 (等于4)
    左移2位:1000 (等于8)
    左移3位:10000 (等于16)
    所以,2 << 3 的结果是 16。

  3. 为什么这等同于乘以8:
    每左移一位,数值就乘以2。左移3位相当于乘以2三次:
    2 * 2 * 2 = 8

因此,2 << 3 等同于 2 * 8 = 16

  1. 一般规则:
    对于任意整数n和非负整数k:
    n << k 等价于 n * (2^k)

  2. 效率:
    在计算机中,位运算通常比乘法运算更快,因为它们直接操作二进制位,而不需要复杂的乘法算法。

  3. 右移操作:
    与左移相反,右移操作(>>)相当于除以2的幂。例如,16 >> 3 等于 2。

总结:2 << 3 是一种高效的方法来计算 2 * 8,它利用了二进制表示和位运算的特性,通常比直接的乘法运算更快。

Math.round(11.5) 等于多少?Math.round(-11.5) 等于多少

Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11。四舍 五入的原理是在参数上加0.5 然后进行下取整。

讲解:
  1. Math.round() 函数:
    这个函数用于对一个数进行四舍五入,将其舍入到最接近的整数。

  2. 正数的情况 (Math.round(11.5)):

  • 11.5 + 0.5 = 12
  • 12 的下取整是 12
    所以 Math.round(11.5) 返回 12
  1. 负数的情况 (Math.round(-11.5)):
  • -11.5 + 0.5 = -11
  • -11 的下取整是 -11
    所以 Math.round(-11.5) 返回 -11
  1. 四舍五入的原理:
    “在参数上加 0.5 然后进行下取整” 这个描述确实很准确。这里’s why:
  • 对于正数:
    如果小数部分 < 0.5,加 0.5 后仍小于下一个整数,下取整后就是原整数部分。
    如果小数部分 ≥ 0.5,加 0.5 后会大于或等于下一个整数,下取整后就是下一个整数。

  • 对于负数:
    如果小数部分的绝对值 ≤ 0.5,加 0.5 后仍大于下一个整数,下取整后就是原整数部分。
    如果小数部分的绝对值 > 0.5,加 0.5 后会小于下一个整数,下取整后就是下一个整数。

  1. 为什么对负数有效:
    对于负数,这个方法之所以有效,是因为在数轴上,负数的"下一个整数"实际上是数值更小的数。例如,-11 比 -12 大。

  2. 边界情况:
    注意,对于 .5 的情况,无论是正数还是负数,都会向上舍入(即远离零的方向)。这就是为什么 11.5 舍入到 12,而 -11.5 舍入到 -11。

总结:Math.round() 函数通过在数字上加 0.5 然后下取整的方式实现了四舍五入。这个方法对正数和负数都有效,并且能够正确处理 .5 的边界情况。

如果喜欢可以持续订阅这个系列,将每天发布6篇12道。让我们一起坚持学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值