计算机基础 - 左移、右移和计算逻辑

左移

指的是位移动,左移就是将数据位向左移动,例如十进制10。二进制为0000 1010。左移4位后得到1010 0000,转为十进制后为160。如果是左移5位,那么超出部分被丢弃得到的就是0100 0000,即十进制的60。但如果是2个字节保存的数据,则有16个位,左移5位后得到0000 0001 0100 0000,则结果为320。

右移

右移就是将数据位向右移动,例如十进制10。二进制为0000 1010。右移4位后超出的部分被丢弃得到0000 0000,转为十进制后为0。

左移右移的计算逻辑

左移:目标数 * 2^左移位数
右移:目标数 / 2^右移位数

例如,在两个字节的情况下,可以有如下结果

  • 10 << 1 = 10 * 2^1 = 20
  • 10 << 4 = 10 * 2^4 = 10 * 16 = 160
  • 10 << 8 = 10 * 2^8 = 10 * 256 = 2560
  • 10 >> 1 = 10 / 2^1 = 5
  • 10 >> 2 = 10 / 2^2 = 2
  • 10 >> 3 = 10 / 2^3 = 1
  • 10 >> 4 = 10 / 2^4 = 0

需要注意的是,左移和右移均返回一个整数。

  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算概论 第一讲 计算机的基本原理 计算机的理论模型——图灵机 从数学危机到图灵机 图灵机的基本构成 图灵机的运行机理 计算机为什么能计算? 数的二进制表示 二进制数的布尔运算 已解问题:数的表示 二进制. 待解问题:如何进行计算计算机中数的逻辑运算方法 布尔代数 1854年:布尔发表《思 维规律的研究——逻辑 与概率的数学理论基 础》,并综合其另一篇 文章《逻辑的数学分 析》,创立了一门全新 的学科-布尔代数; 为计算机的开关电路设 计提供了重要的数学方 法和理论基础。 英国数学家布尔(G.Boole) 计算机中数的逻辑运算方法 基本逻辑运算 与 或 非 复合逻辑运算 同或 异或 与非 或非 与或非 英国数学家布尔(G.Boole) 计算机中数的逻辑运算方法 F R E A B 逻辑函数表达式:F= A B 真值表 A B F 0 0 0 0 1 0 1 0 0 1 1 1 B 计算机中数的逻辑运算方法 F A R E 逻辑函数表达式:F= A+B F 0 1 1 1 A 0 0 1 1 B 0 1 0 1 真值表 计算机中数的逻辑运算方法 逻辑函数表达式:F= A+B E A R F 1 0 0 1 F A 真值表 AB F1 F2 00 0 1 01 1 0 10 1 0 11 0 1 计算机中数的逻辑运算方法 真值表 异或 两数相同为"0" 两数相异为"1" 同或 两数相同为"1" 两数相异为"0" F = A B F = A B 加法的计算 举例:A=1101, B=1001, 求 A+B 1 1 0 1 + 1 0 0 1 1 0 0 1 1 0 1 1 0 加法的计算 举例:A=1101, B=1001, 求 A+B 异或 与 A B 本位 进位 1 + 1 1 + 0 1 0 1 1 + 1 0 0 1 1 + 0 0 1 1854年的布尔代数 半 加 器 半 加 器 或 an bn cn -1 sn cn Scn-1 an---加数;bn---被加数;cn-1---低位的进位 sn---本位和;cn---进位 1 1 0 1 + 1 0 0 1 1 0 0 1 1 0 1 1 0 已解问题:数的表示 —— 二进制. 已解问题:计算方法 —— 布尔代数 待解问题:布尔运算如何实现? 1854年的布尔代数 与门 或门 异或门 小结 电路为什么能计算? 数字运算 可以转换 二进制数的运算; 二进制运算 可以转换为 基本的"布尔运算" ; 基本的"布尔运算" 都可以 由电路完成; 所以电路能"算数"! CPU 计算机的过去、现在 和 未来 下集预告 Thanks. 计算概论 第一讲 计算机的基本原理 计算机的理论模型——图灵机 从数学危机到图灵机 图灵机的基本构成 图灵机的运行机理 计算机为什么能计算? 数的二进制表示 二进制数的布尔运算 计算机的理论模型——图灵机 本节内容 图灵机的构成 运作机理 示例 图灵机的意义 前节回顾 三次数学危机 图灵的贡献 提到了"图灵机" 图灵机的构成 图灵机的组成 一条存储带 双向无限延长 上有一个个小方格 每个小方格可存储一个数字/ 字母 一个控制器 可以存储当前自身的状态; 包含一个读写头,可以读、 写、更改存储带上每一格的 数字/字母 可以根据读到的字母/数字变 换自身的状态 可以沿着存储带一格一格地 左移/右移 图灵机如何工作 图灵机的工作步骤: 1. 准备: (1)存储带上符号初始化; (2)控制器设置好自身当前状态; (3)读写头置于起始位置; (4)准备好工作程序; 2. 反复执行以下工作直到停机: (1)读写头读出存储带上当前方格中 的字母/数字; (2)根据 自身当前状态 和 所读到的 字符,找到相应的程序语句; (3)根据 相应程序语句,做三个动作: 在当前存储带方格上写入一个相 应的字母/数字; 变更自身状态至新状态; 读写头向左或向右移一步; 1 1 1 1 1 1 1 q1 q1 q2 q2 q3 q3 1 b 1 b 1 b 1 1 1 b b b R R R L H H q1 q2 q2 q3 q3 q3 当前状态:q1 q1 1 1 R q1 当 前 机 器 状 态 当 前 读 入 的 符 合 当 前 应 写 入 的 符 号 读 写 头 的 动 作 机 器 应 转 入 的 状 态 图灵机运行前的准备工作: (1)存储带上符号初始化; 当前字母表:{ 1,b } (2)设置好控制器当前状态; 控制器状态集合: { q1, q2, q3 } 控制器当前状态:q1 (3)读写头置于起始位置; (4)准备好工作程序; 图灵机程序五元组: <q, b, a, m, q'> 1 1 1 1 1 1 1 q1 q1 q2 q2 q3 q3 1 b 1 b 1

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值