c语言给定一个非空整数数组

Problem statement: Write a C Program to check if all the bits of a given integer is one (1).

问题陈述:编写一个C程序来检查给定整数的所有位是否都是一(1)

Solution: We can use bitwise operator here to solve the problem.

解决方案:我们可以在这里使用按位运算符来解决问题。

Pre-requisite: Input number n

前提条件 :输入数字n

Algorithm:

算法:

1)  Do Bitwise AND with n and 1.
n & 1
let n be a7a6a5a4a3a2a1a0
1->00000001
So doing bitwise AND (refer to published article on bitwise operators)
will result in all bits 0 except the LSB which will be a0.
If a0 is 0 then the all bits are not set
Thus,
IF
n & 1 ==0
Print that all bits are not same
ELSE
Right shift n by 1
n=n>>1
END IF-ELSE
2)  IF n==0
Print that all bits are set
ELSE
REPEAT step 1

Example with Explanation:

解释示例:

Checking for 12
12-> 00001100
So first iteration:
n=12 //00001100
n & 1 ==0
so print that all bits are not set
Checking for 7
7->00000111
So first iteration:
n=7 //00000111
n & 1 =1
n=n>>1 (n=3) //00000011
So second iteration:
n=3 //00000011
n & 1 =1
n=n>>1 (n=1) //00000001
So third iteration:
n=1 //00000001
n & 1 =1
n=n>>1 (n=0) //00000000
So, All bits are set
.minHeight{ min-height: 250px; } @media (min-width: 1025px){ .minHeight{ min-height: 90px; } } .minHeight{ min-height: 250px; } @media (min-width: 1025px){ .minHeight{ min-height: 90px; } }

C implementation

C实现

#include <stdio.h>
int main()
{unsigned int n;
printf("enter the integer\n");
scanf("%d",&n);
while(n>0){int temp=n&1;
if(temp == 0){ //if any bit not set
printf("all bits are not set\n");
return 0;
}
n=n>>1; //right shift operator
}
printf("all bits are set ");
printf("in its binary representation\n");
return 0;
}

Output

输出量

First run:
enter the integer
12
all bits are not set
Second run:
enter the integer
7
all bits are set in its binary representation

翻译自: https://www.includehelp.com/c-programs/check-if-all-the-bits-of-a-given-integer-is-one-1.aspx

c语言给定一个非空整数数组

c语言给定一个非空整数数组_C程序检查给定整数的所有位是否为一(1)相关推荐

  1. Java 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

    给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 示例 1: 输入: [2,2,1] 输出: 1示例 2: 输入: [4,1,2,1,2] 输出: ...

  2. 重复子字符串(给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。)

    给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成.给定的字符串只含有小写英文字母,并且长度不超过10000.   示例 1: 输入: "abab" 输出: True ...

  3. 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。【LeetCode Hot 100】

    力扣热题100之第136题: 先贴代码: class Solution {public int singleNumber(int[] nums) {//异或int ans = 0;for(int i ...

  4. 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

    给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间. ...

  5. 【408计算机考研】|【2018统考真题-41】| 给定一个含 n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数

    目录 一.题目 二.解答 三.测试数据 一.题目   给定一个含 n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算 法,找出数组中未出现的最小正整数.例如,数组{-5, 3, 2, 3}中未 ...

  6. 9.11排序与查找(三)——给定一个排序后的数组,包括n个整数,但这个数组已被旋转过多次,找出数组中的某个元素...

    /**  * 功能:给定一个排序后的数组.包括n个整数.但这个数组已被旋转过多次,次数不详.找出数组中的某个元素.  * 能够假定数组元素原先是按从小到大的顺序排列的.  */ /*** 思路:数组被 ...

  7. 给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素...

    2019独角兽企业重金招聘Python工程师标准>>> /** * 功能:给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,次数不详.找出数组中的某个元素. * 可以假定 ...

  8. 给定一个未排序的数组,求如果数组排序之后,相邻数的最大差值。

    给定一个未排序的数组,求如果数组排序之后,相邻数的最大差值.要求时间复杂度为O(n),且要求不能用非基于比较的排序. 首先,这个问题明显限制了不能使用直接排序的方式求解.因为基于比较的排序时间复杂度最 ...

  9. 给定一个排序好的数组,插入一个数,使其仍然有规律不使用排序算法

    给定一个排序好的数组,插入一个数,使其仍然有规律 不使用排序算法 public class test14 { //数组习题public static void main(String[] args) ...

最新文章

  1. Python自然语言处理实战
  2. 033_webpack打包ES6模块化工程
  3. sap与外部系统的接口怎么实现
  4. 一文解析激光雷达中时序融合的研究现状和发展方向
  5. oracle10数据库链接失败,PLSQL Developer连接Oracle 10g或Oracle 11g失败
  6. 飞飞CMS黑色自适应BX8X主题模板
  7. Python 基础学习 4 ——字典
  8. Mysql主从复制操作笔记
  9. 退出myeclipse 8.5配置中心
  10. css常用样式大全集锦
  11. 医院计算机五大应用系统,医疗系统计算机应用的现状与发展
  12. 图片中隐藏信息——图片隐写术
  13. 二、为jupyter notebook 添加标题
  14. css中textarea去掉边框和取消选中后的边框
  15. 路飞学城之 luffy(1)
  16. java 锁降级 知乎_锁降级
  17. springboot + 操作日志添加
  18. kindEditor编辑器如何自定义工具栏
  19. 彩色微光相机VS星光相机
  20. Unity粒子系统详解

热门文章

  1. Qt图形界面编程入门(标签与槽机制习题分享)
  2. 修改tomcat服务器图标,修改tomcat小猫图标,设置项目的favicon图标
  3. Python hasattr() getattr() setattr() 函数使用
  4. JAVA并发篇_公平锁与非公平锁
  5. UVA1583 Digit Generator
  6. %@ taglib prefix=c uri=http://java.sun.com/jsp/jstl/core %会报错
  7. 一点一点看JDK源码(五)java.util.ArrayList 后篇之removeIf与Predicate
  8. JavaMail(四):接收邮件
  9. git reset, git checkout, git revert 区别 (译)
  10. [转载] AUML——Schedules and Events