c语言给定一个非空整数数组_C程序检查给定整数的所有位是否为一(1)
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
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)相关推荐
- Java 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 示例 1: 输入: [2,2,1] 输出: 1示例 2: 输入: [4,1,2,1,2] 输出: ...
- 重复子字符串(给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。)
给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成.给定的字符串只含有小写英文字母,并且长度不超过10000. 示例 1: 输入: "abab" 输出: True ...
- 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。【LeetCode Hot 100】
力扣热题100之第136题: 先贴代码: class Solution {public int singleNumber(int[] nums) {//异或int ans = 0;for(int i ...
- 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间. ...
- 【408计算机考研】|【2018统考真题-41】| 给定一个含 n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数
目录 一.题目 二.解答 三.测试数据 一.题目 给定一个含 n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算 法,找出数组中未出现的最小正整数.例如,数组{-5, 3, 2, 3}中未 ...
- 9.11排序与查找(三)——给定一个排序后的数组,包括n个整数,但这个数组已被旋转过多次,找出数组中的某个元素...
/** * 功能:给定一个排序后的数组.包括n个整数.但这个数组已被旋转过多次,次数不详.找出数组中的某个元素. * 能够假定数组元素原先是按从小到大的顺序排列的. */ /*** 思路:数组被 ...
- 给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素...
2019独角兽企业重金招聘Python工程师标准>>> /** * 功能:给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,次数不详.找出数组中的某个元素. * 可以假定 ...
- 给定一个未排序的数组,求如果数组排序之后,相邻数的最大差值。
给定一个未排序的数组,求如果数组排序之后,相邻数的最大差值.要求时间复杂度为O(n),且要求不能用非基于比较的排序. 首先,这个问题明显限制了不能使用直接排序的方式求解.因为基于比较的排序时间复杂度最 ...
- 给定一个排序好的数组,插入一个数,使其仍然有规律不使用排序算法
给定一个排序好的数组,插入一个数,使其仍然有规律 不使用排序算法 public class test14 { //数组习题public static void main(String[] args) ...
最新文章
- Python自然语言处理实战
- 033_webpack打包ES6模块化工程
- sap与外部系统的接口怎么实现
- 一文解析激光雷达中时序融合的研究现状和发展方向
- oracle10数据库链接失败,PLSQL Developer连接Oracle 10g或Oracle 11g失败
- 飞飞CMS黑色自适应BX8X主题模板
- Python 基础学习 4 ——字典
- Mysql主从复制操作笔记
- 退出myeclipse 8.5配置中心
- css常用样式大全集锦
- 医院计算机五大应用系统,医疗系统计算机应用的现状与发展
- 图片中隐藏信息——图片隐写术
- 二、为jupyter notebook 添加标题
- css中textarea去掉边框和取消选中后的边框
- 路飞学城之 luffy(1)
- java 锁降级 知乎_锁降级
- springboot + 操作日志添加
- kindEditor编辑器如何自定义工具栏
- 彩色微光相机VS星光相机
- Unity粒子系统详解
热门文章
- Qt图形界面编程入门(标签与槽机制习题分享)
- 修改tomcat服务器图标,修改tomcat小猫图标,设置项目的favicon图标
- Python hasattr() getattr() setattr() 函数使用
- JAVA并发篇_公平锁与非公平锁
- UVA1583 Digit Generator
- %@ taglib prefix=c uri=http://java.sun.com/jsp/jstl/core %会报错
- 一点一点看JDK源码(五)java.util.ArrayList 后篇之removeIf与Predicate
- JavaMail(四):接收邮件
- git reset, git checkout, git revert 区别 (译)
- [转载] AUML——Schedules and Events