格雷编码(转换与计算)附代码

本文介绍了格雷码的对应表、转换公式,特别是通过公式展示如何从二进制表示转换到格雷码,并提供了C++代码实例来实现格雷码生成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

格雷码对应表

格雷码转换公式

公式1

公式2

代码实现


格雷码对应表

十进制数

4位自然二进制码

4位典型格雷码

0

0000

0000

1

0001

0001

2

0010

0011

3

0011

0010

4

0100

0110

5

0101

0111

6

0110

0101

7

0111

0100

8

1000

1100

9

1001

1101

10

1010

1111

11

1011

1110

12

1100

1010

13

1101

1011

14

1110

1001

15

1111

1000


格雷码转换公式

公式1

G_{i}=B_{i}\bigoplus B_{i+1} (0\leqslant i\leqslant n-1) 

Bi+1=n时,当作0

公式2

G_i=i\bigoplus\lfloor \frac{i}{2}\rfloor

这里的 i 都是二进制表示形式

比如5的格雷码是 101\bigoplus 010 =111


代码实现

class Solution {
public:
    vector<int> grayCode(int n) {
        vector<int>ret(1<<n);
        for(int i=0;i<ret.size();i++){
            ret[i]=i^(i>>1);
        }
        return ret;
    }
};

### Mac电脑合上盖子后耗电的原因 当MacBook在合上盖子之后仍然存在较高的耗电量,通常是因为设备未能正确进入低功耗状态或者某些后台进程持续活动所致。具体来说: - **未完全休眠**:按照预期行为,当笔记本电脑被合上盖子应切换至睡眠模式以减少电力消耗;然而有由于系统错误配置或其他因素干扰,可能导致机器并未真正转入节能状态[^1]。 - **Wi-Fi保持连接**:默认情况下,部分型号的Mac允许通过无线网络唤醒功能来接收推送通知等服务,即使处于待机状态下也会维持网络链接活跃,从而增加额外的能量需求[^2]。 - **应用程序和服务的影响**:一些正在运行的应用程序可能会阻止计算机彻底进入深度睡眠阶段,特别是那些依赖于互联网更新数据的任务管理器、即通讯工具以及云同步客户端等[^3]。 为了有效降低这种不必要的能量流失现象并延长便携式计算装置的工作间,建议采取如下措施之一或组合应用: #### 关闭Wi-Fi唤醒选项 可以通过调整偏好设置中的电源管理参数禁用此特性,防止因远程访问请求而导致周期性的短暂激活事件发生。 ```bash sudo pmset -a womp 0 ``` 该命令用于全局范围内关闭所有类型的“Wake on Wireless LAN”机制。 #### 修改辅助功能里的显示器自动调节亮度开关 对于配备环境光传感器的产品而言,默认开启的状态下会依据周围光线强度变化动态改变屏幕亮暗程度,但这同样会在一定程度上影响整体能耗水平。因此可考虑将其设为固定数值而非随境自适型工作模式。 #### 定期重启与清理缓存文件 长期不重新启动操作系统容易积累过多临资源占用情况,进而拖累性能表现同也间接提高了静态功率损耗率。适执行一次完整的关机再开机操作有助于释放内存空间并优化内部调度效率。 #### 更新驱动程序和固件版本 制造商不定期发布的补丁包往往包含了针对特定硬件组件改进后的控制逻辑修正项,安装最新官方推荐的安全性和稳定性增强型软件包能够帮助修复潜在漏洞的同提升兼容性及能效比。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值