开源硬件
Arduino
客制化键盘
Arduino_寄存器
二进制运算
寄存器+二进制运算
LCD-逐字显示
密码依次录入
等待输入
WiFi Duck(无线击键注入攻击平台)
WiFi Duc-New
WiFi Duc-Old
蓝牙无线烧录
ESP8266
ESP-NOW
ESP8266看门狗
ESP8266-休眠模式
ESP01/01S使用说明
WIFI_SD
ESP8266-Web服务器
ESP8266-WIFI自动认证
ESP32
ESP32 ADC2
ESP32_PWM
ESP32_CAM
ESP32 小坦克
ESP32_限电保护
Arduino IDE 添加 ESP32
ESP32-iPhone BLE攻击
STM32
STM32F103-虚拟键盘
STC
STC8G1K08(A)
树莓派-触摸屏
Arduino IDE
Arduino_自制库
Arduino库收集
常见排序算法
冒泡排序
选择排序
插入排序
希尔排序
归并排序
快速排序
计数排序
预处理
millis(运行时长)
Arduino IDE 2.X-修改数据位置
Mixly
Mixly安装教程
Mixly 模块介绍
Mixly-添加ESP32CAM支持
Mixly-库定制工具
模块
4G模块连接物联网
GPS模块
语音模块(JQ8900)
安信可VB语音识别
28BYJ-48(5V步进)
FreeRTOS
FreeRTOS-多任务基础
FreeRTOS-任务共享全局变量
FreeRTOS-多核多任务
FreeRTOS-MUTEX
FreeRTOS-常规程序改多任务
FreeRTOS-定时器
LaserGRBL(激光雕刻)
LaserGRBL-GRBL
GRBL-CNC Shield v4
MicroPython
Scratch
Wokwi(在线仿真)
html转无符号数组
待做开源项目
本文档使用 MrDoc 发布
-
+
首页
二进制运算
## 二进制运算 寄存器操作目前只能做到整组操作,还有很多不便 我们可以借助于二进制的运算来实现更加精准高效的操作 二进制支持基本的`四则运算`,算法和十进制类似,不会有小数 二进制特有运算符:`&(与),|(或),~(非),^(异或),<<(左移),>>(右移)` ### &(与) 和 |(或) & 和 | 非常相似,这里放在一起讲解 - `&` 可以理解为 and(且),全部满足为真(1),否则均为假(0) - `|` 可以理解为 or(或),满足任何一个就为真(1),均不满足为假(0) <!-- 因为表格框是由 | 组成的,和运算符一样,所以运算符要转义 --> | &(与) | \|(或) | | --- | --- | | `两者都为1则为1,否则为0` | `两者都为0为0,否则为1` | | 1&1=1 | 1\|1=1 | | 1&0=0 | 1\|0=1 | | 0&1=0 | 0\|1=1 | | 0&0=0 | 0\|0=0 | | 1001&0101=0001 | 1001\|0101=1101 | ### ~(非) - `~` 可以理解为`反转每位`上的值,真(1)反转为假(0),假(0)反转为真(1) | ~(非) | | --- | | `反转每位值` | | ~0=1 | | ~1=0 | | ~1001=0110 | ### ^(异或) - `^`,两者相等为0,不等为1 | ^(异或) | | --- | | `两者相等为0,不等为1` | | 1^1=0 | | 1^0=1 | | 0^1=1 | | 0^0=0 | | 1001^1100=0101 | ### <<(左移) 和 >>(右移) << 和 >> 非常相似,这里放在一起讲解 - `<<` 就是位移动,位左移,空位补0,左侧溢出位移除 - `>>` 右移比较特殊,有无符号处理方式不同 - 无符号,位右移,空位补0,右侧溢出位移除 - 有符号,符号位不变,剩下的右移,空位补0,右侧溢出位移除 | <<(左移) | >>(右移) | >>(右移,有符号) | | --- | --- | --- | | `位左移,空缺补0` | `位右移,空缺补0` | `符号位不变,剩余位右移,空缺补0` | | 0101<<1=1010 | 0101>>1=0010 | 1101>>1=1010 | | 01011001<<3=1100100 | 01011001>>3=00001011 | 11011001>>3=10001011 | 注意,有符号的,首位为符号位,0为正数,1位负数 ### 原码,反码,补码 - 原码:就是数值本身 - 反码: - 正数的反码为原码本⾝ - 负数反码符号位不变,剩余的数字位取反 - 补码: - 正数的补码为原码本⾝ - 负数的补码为反码+1
造物者W
2022年5月15日 21:54
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码