概述
昨天,我的计算机网络老师给我们留了一个小作业,统计Byte类型变量中二进制位上1的个数,经过查询,C语言是没有Byte这个类型的,但是等价于unsigned char.
分别统计的代码如下
#include<stdio.h>
#include<stdlib.h>
int count=0;
static int CountB(unsigned char b)
{
int count=0;
while(b>0)
{
if(b%2==1) //此处满足=1说明此二进制位上为1,!=1则为0
{
++count;
}
b=(unsigned char)(b/2);//使正在判断的二进制位不断右移
}
return count;
}
int main(){
int a=0,i=0;
unsigned char c[5]={127,11,21,45,25};
printf("初始BYTE表为:nn");
for(i=0;i<5;i++)
{
printf("%d ",c[i]);
}
printf("nn对应的字节类型二进制中1的个数为:nn");
i=0;
unsigned char b=0;
for(i=0;i<5;i++)
{
b=c[i];
a=CountB(b);
printf("%d ",a) ;
}
printf("n");
}
运行效果如下
全部统计代码
#include<stdio.h>
#include<stdlib.h>
int count=0;
static int CountB(unsigned char b)
{
int count=0;
while(b>0)
{
if(b%2==1)
{
++count;
}
b=(unsigned char)(b/2);
}
return count;
}
int main(){
int a=0,i=0;
unsigned char c[5]={'s','a','b','c','d'};
printf("初始BYTE数组为:nn");
for(i=0;i<5;i++)
{
printf("%c",c[i]);
}
printf("nn对应的二进制中1的总个数为:nn");
i=0;
unsigned char b=0;
for(i=0;i<5;i++)
{
b=c[i];
a=a+CountB(b);
}
printf("%d ",a) ;
printf("n");
}
效果
实用版本代码(开发中。。。。)
最后
以上就是瘦瘦日记本为你收集整理的C语言统计Byte(即unsigned char型)类型变量中‘1‘的个数的全部内容,希望文章能够帮你解决C语言统计Byte(即unsigned char型)类型变量中‘1‘的个数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复