c语言输入无符号16位数判断这个数第8位是不是为1
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言输入无符号16位数判断这个数第8位是不是为1相关的知识,希望对你有一定的参考价值。
输入无符号16位数判断这个数第8位是否为1?
判断一个数据的某一位是否为1或者0的方法其实很简单。而对于无符号的字符来说更加的简单。
就拿你这个问题来说,你需要判断的是第八位,
那么我们就将这个数据与0000 0000 1000 0000相"或"。
对于或运算我相信你是了解的。
这样做之后,如果第8位为1,那么这个数据的结果就会大于0.
如果第8位为0,那么结果就为0,这样就能轻松判断第8位的值了。 参考技术A int nTemp;(假设这是个十六位数)
if((nTemp >> 8) & 0x01) 参考技术B 将这个数除以10的8次方得余数a(符号为%),然后除以10的7次方得商b(符号为/),在判断b是否为1即可. 参考技术C unsigned short var;
if(var & 0x0080)
如何用c语言编程,判断一个三位数是不是为顺子(不是顺子直接提示出错)?
#include<stdio.h>
int main()
int n,a,b,c;
scanf("%d",&n);
a=n%10;//个位
b=n%100/10;//十位
c=n/100;//百位
if((a+2==b+1&&b+1==c)||(a==b+1&&b+1==c+2))
printf("该数是顺子");
else
printf("输入错误");
return 0;
希望能帮到你,望采纳;
参考技术A #include<stdio.h>#include<math.h>//使用绝对值函数必须要引入math.h
int calc(int num)
int temp[3],i=0;
while(num!=0)//将三位数从个位开始取,依次存放在数组temp中
temp[i]=num%10;
num/=10;
i++;
//abs就是C语言求绝对值的数,顺子满足前面一个数减去后面一个数的差的绝对值等于1,并且满足第一位数减去第三位数的绝对值等于2,如果是顺子,该函数返回1,如果不是顺子该函数返回0
if(abs(temp[0]-temp[1])==1&&abs(temp[1]-temp[2])==1&&abs(temp[0]-temp[2])==2)
return 1;
return 0;
void main()
int num;
printf("请输入一个三位数:"); //提示并输入三位数
scanf("%d",&num);
while(num<100||num>999) //假如输入的不是三位数,提示重新输入
printf("你输入的不是一个三位数,请重新输入!\n\n");
printf("请输入一个三位数:");
scanf("%d",&num);
if(calc(num)==1)
printf("顺子!");
else
printf("输入错误!");
printf("\n");
参考技术B 用if语句判断吧,满足a<b<c就是顺子,否则不是。C语言表达为if(a <b && b < c) printf("顺子");
以上是关于c语言输入无符号16位数判断这个数第8位是不是为1的主要内容,如果未能解决你的问题,请参考以下文章