判断一个无符号整数是不是2的幂

C版本:

 

#include<stdio.h>

//原理:2的幂的二进制位中有且只有一位是1
int Is2Power(unsigned int d)
{
 int i = sizeof(d) << 3;  //这里i得到d所占的位数(bits),因为要对d的每一位作判断
 unsigned int v;
 while(i > 0)
 {
  v = 1 & d;    //取得d的最后一位
  d >>= 1;
  if(v == 1)
  {
   if(d == 0)
    return 1;  //是2的幂
   else
    return 0;  //不是2的幂
  }
  i--;
 }
 return 0;
}

void main()
{
 unsigned int d;
 int i = 0;
 while(i < 9999)
 {
  if(Is2Power(i))
   printf("%d  is 2's Power./n", i);
  i++;
 }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/407900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

童趣

1.豆豆的外婆买了一只母鸡&#xff0c;打算杀了吃。豆豆不允许杀它&#xff0c;外婆就把鸡养在院子里。每天早上&#xff0c;外婆在院子里干家务&#xff0c;豆豆就坐在小板凳上&#xff0c;手里拿了本小画书&#xff0c;绘声绘色地给母鸡讲故事。豆豆给母鸡起的小名是“小鸭”…

PROJECT #1 - BUFFER POOL [CMU 15-445645]笔记

PROJECT #1 - BUFFER POOL 15-445/645笔记 因为在主存中储存所有块是不可能的&#xff0c;我们需要管理主存中用于存储块的可用空间的分配 。缓冲区是主存中用于存储磁盘数据块拷贝的那部分。 缓冲区管理器 ​ 当数据库系统中的程序需要磁盘上的块时&#xff0c;它向缓冲区管…

判断一个无符号整数是不是2的n次幂的幂

C版本&#xff1a; #include<stdio.h> unsigned int f2(int n); //判断无符号整数d是不是[2的n次幂]的幂,并指出该数[d]是[2的n次幂]的多少(e)次幂//原理&#xff1a;2的n次幂的幂的二进制位中有且只有一位是1,且1后面刚好是n个0为一组int IsPowerof2Power(unsigned in…

Eclipse换常用的快捷键

还是喜欢ctrltab键来切换窗口&#xff0c;ctrlf6实在不好使。 修改方法&#xff1a;在eclipse中Window -> Perferences -> General -> Keys -> 查找“Next Editor”&#xff0c;把Ctrl F6修改为Ctrl Tab 转载于:https://www.cnblogs.com/HD/p/3654197.html

MS SQL入门基础:系统数据库

SQL Server 2000 有四个系统数据库&#xff08;System Databases&#xff09;&#xff1a;Master、Model、Msdb、Tempdb。这些系统数据库的文件存储在Microsoft SQL Server&#xff08;默认安装目录&#xff09;的MSSQL子目录的Data 文件夹中。各系统数据库所包含的文件如表6-1…

C++20 std::jthread

C20 std::jthread std::jthread 表示 joining thread , 与C11里面的std::thread不同std::jthread 自动join, 并且可以被外部终止 自动join std::thread #include <iostream> #include <thread> using namespace std;int main(int argc, char* argv[]) {std::cou…

WebRTC音视频引擎研究(2)--VoiceEngine音频编解码器数据结构以及参数设置

1、VoiceEngine Codec数据结构 WebRTC中&#xff0c;用一个结构体struct CodecInst表示特定的音频编解码器对象&#xff1a; [cpp] view plaincopy struct CodecInst { int pltype; //payload type负载类型 char plname[32]; //payload name负载名称&#xff0…

.NET资源收集

.NET开发资源精华收集与共享 .Net General微软.Net中文主页 .NET Framework开发中心 微软.Net Framework中文产品支持中心 微软.Net Framework中文新闻组(Web) 微软VB.Net中文新闻组(Web) 博客园 .NET 2.0 专题 孟宪会之精彩世界 微软.NET俱乐部 MSDN中文网络广播 AspxBoy教程网…

小程序学习(2):vs code 安装插件

1. wechat-snippet 微信小程序代码辅助,代码片段自动完成 2. minapp 微信小程序标签、属性的智能补全&#xff08;同时支持原生小程序、mpvue 和 wepy 框架&#xff0c;并提供 snippets&#xff09; 需要输入<才会触发标签补全输入空格会触发对应标签的属性补全 3. wxapp-…

C++ 20 内存模型(一)

C 20 内存模型(一) 多线程的基础是优秀的内存模型 C20 内存模型: 高复杂性, 难以理解对多线程有更深入的理解 内存布局 位域 member_name成员名, width bit 宽度 struct bit_field_name {type member_name : width; };struct my_struct {char a;int b : 5; // 最大存储 …

char[]:strlen和sizeof的区别

C code: // char[]&#xff1a;strlen和sizeof的区别#include <stdio.h>#include <string.h>int main(int argc, char* argv[]){char str[] "Hello man";printf("str %s\nstrlen(str) %d\nsizeof(str) %d\n", str, strlen(str), sizeof(st…

讲话的技巧

名人的精神讲话&#xff08;有话则短&#xff0c;无话则免&#xff09;有人问美国第28任总统伍德罗.威尔逊,他准备一份10分钟的讲稿,得花多少时间?威尔逊答&#xff1a;“两星期。”“准备一份1小时的讲稿呢&#xff1f;”“一星期。”“两个小时的讲稿&#xff1f;”“不用准…

sql-C#-类型对应

bitbooltinyintbytesmallintshortintintbigintlongrealfloatfloatdoublemoneydecimaldatetimeDateTimecharstringvarcharstringncharstringnvarcharstringtextstringntextstringimagebyte[]binarybyte[]uniqueidentifierGuid/ SqlDbType转换为C#数据类型 public static Type Sq…

关于局部变量在内存中的地址

C code: #include<stdio.h> void main(){ int aa 11, bb 22; int a 1; int b 2; printf("%X/t%X/t%X/t%X/n", &aa, &bb, &a, &b);} Running Result: 12FF7C 12FF78 12FF74 12FF70 可见局部变量是存放在栈区的&#xff0c;他们的地址先…

C++20 Atomic 原子 内存模型(二)

C20 Atomic 原子 内存模型(二) 原子是C内存模型的基础 强/弱内存模型 1. 强内存模型 Leslie Lamport 定义了顺序一致性的概念 顺序一致性提供两个保证: 指令按源码的顺序执行对所有线程的所有指令有全局的顺序 以上不仅仅作用于原子, 也影响着非原子变量 int main(int a…

认证考试介绍之RHCE篇

认证考试介绍之RHCE篇 RHCE是Red Hat Certified Engineer的简称&#xff0c;始于1999年3月。截至2001年1月17日&#xff0c;Red Hat的统计资料表明&#xff0c;RHCE资格认证的通过率为62.5%。RHCE是市场上第一个面向Linux的认证考试&#xff0c;它不是一个普通的认证测试&#…