我是靠谱客的博主 瘦瘦日记本,最近开发中收集的这篇文章主要介绍C语言统计Byte(即unsigned char型)类型变量中‘1‘的个数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

昨天,我的计算机网络老师给我们留了一个小作业,统计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‘的个数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部