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的主要内容,如果未能解决你的问题,请参考以下文章

uint啥意思 怎么用? 单片机c语言编程

Verilog中,判断两个数是不是相等,一个数16位,一个数17位,16位的能自动补0吗?

C语言里,关于数据类型的大小问题

关于c语音,二进制问题?

C语言,输入一个整数,从高位开始逐位分割并输出它的各位数字

C语言中啥是一个8位的整数