当前位置: 首页 > news >正文

CExercise04_1位运算符_2 定义一个函数判断给定的正整数是否为2的幂

题目:

给定一个正整数,请定义一个函数判断它是否为2的幂(1, 2, 4, 8, 16, …)


分析:

在这里插入图片描述


代码

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdbool.h>

/*
给定一个正整数,请定义一个函数判断它是否为2的幂(1, 2, 4, 8, 16, ....)。
*/
bool is_pows(int num) { 
	return num > 0 && (num & (num - 1)) == 0;

}
int main(void) {
	int number;
	printf("请输入一个正整数: ");
	scanf("%d", &number);

	if (is_pows(number)) {
		printf("%d 是2的幂\n", number);
	}
	else {
		printf("%d 不是2的幂\n", number);
	}
	return 0;
}
	

在这里插入图片描述
在这里插入图片描述


解决方案总结:

记住这条性质:num如果是2的正整数幂,那么和(num-1)相与运算,结果一定是0

:注意细节:
在这里插入图片描述

相关文章:

  • 通过第k个最大元素深入浅出快排和堆排序
  • 开箱即用的可视化AI应用编排工具 Langflow,可调用魔搭免费API作为tool
  • C++实现对象单例模式
  • SQL操作之:连接(JOIN)
  • JavaScript DOM 节点操作
  • 极限编程(XP)简介及其价值观与最佳实践
  • VMware虚拟机卡顿、CPU利用率低、编译Linux内核慢,问题解决与实验对比
  • 【案例91】记一次高级版升级环境报错“fail to save VO Array”
  • 批处理脚本的主要解析规则
  • 正确安装PyTorch
  • WebSocket通信协议
  • OpenCV引擎:驱动实时应用开发的科技狂飙
  • leecode第19天
  • 使用YoloV5和Mediapipe实现——上课玩手机检测(附完整源码)
  • 使用 PyTorch 的 `torch.rot90` 进行张量旋转:数据增强的利器
  • 用matlab搭建一个简单的图像分类网络
  • OpenCV 图形API(14)用于执行矩阵(或图像)与一个标量值的逐元素乘法操作函数mulC()
  • Nyquist内置函数-概述
  • Spring Task 定时任务
  • 呼叫中心系统压力测试文档