0X0A按位运算

前置知识

  • 0X07小学算数

正文

  1. 目前的计算机实现中中存储数据,最终都归结到二进制数。为了保存负数、简化减法运算、处理浮点数等目的。计算机中采用了多种约定。例如反码、补码、IEEE754等。
  2. Lua这种解释性语言一般尽量隐藏底层细节,以便开发人员把精力集中到算法本身。但是Lua还是提供了一些用于底层数据的操作。这就包括这里要介绍的按位运算。
  3. 首先按位运算的对象是整数或者小数部分全为零的浮点数——后者可以无损地转换成整数,在进行按位运算的时候,可转换的浮点数会自动转换为整数。
  4. 按位运算基于数据实际在计算机中处理的数据形式(二进制补码)运算。对于两个操作数,一位一位地执行与、或、非、异或等操作。或者对于一个操作数,进行一位一位按位取反运算。也可以把一个整数的二进制形式全体位左移若干位、全体位右移若干位。
  5. 所用的运算符是
    • & 按位与
    • | 按位或
    • ~ 按位异或
    • 右移运算

    • << 左移运算
    • ~ 按位非运算
  6. 按位运算主要是针对于目前的计算机实现的。但是这对于并不十分贴近硬件的软件层次和算法来说并不是十分重要。所以如果你没弄明白按位运算并不影响后续课程。本课主要针对在C语言、汇编语言之类的语言中接触过按位运算的读者。

后续推荐

  • 暂无