二进制序列相关函数

1.写一个函数返回参数二进制中1的个数
#include<stdio.h>
int count_one_bit(int num)
{
int count=0;
int i=32;
while(i--)
{
if(num&1==1)
	count++;
num=num>>1;
}
return count;
}

int main()
{
int n=0;
int count=0;
scanf("%d",&n);
count=count_one_bit(n);
printf("%d\n",count);
system("pause");
return 0;
}

2.获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
#include<stdio.h>
int main()
{
int num=0;
int i=0;
scanf("%d",&num);
for(i=0;i<32;i+=2)
{
	printf("%d",((num>>i)&1));
}
printf("\n");
for(i=1;i<32;i+=2)
{
	printf("%d",((num>>i)&1));
}
printf("\n");
system("pause");
return 0;
}
时间: 2024-12-20 21:44:31

二进制序列相关函数的相关文章

十进制转换为二进制序列,并输出1的个数,和序列的奇偶序列

★十进制转换为二进制序列,并输出1的个数,和序列的奇偶序列 #include<stdio.h> int main() { int m,i,x,y; char a[32];//int为4个字节长,占32个bit位 int count=0; printf("请输入一个数:\n"); scanf("%d", &m); for (i = 0; i < 32; i++) { if (m%2 == 1)         //统计序列中1的个数 { co

输入的数转化为二进制序列,并统计序列中1的个数

★输入的数转化为二进制序列,并统计序列中1的个数 描述:普通的模除取余后数直接除二的办法易于理解,但是对于输入的数只限于正数和零,对于负数则不适应,所以采用与后移位的方法以此来扩大数的输入范围. #include<stdio.h> int main() { int m,b,c,i; int count = 0; char a[32]; printf("请输入一个数:\n"); scanf("%d", &m); for (i = 0; i <

【c语言】将一个数的二进制序列逆序,然后输出逆序之后的二进制序,所对应的数

// 将一个数的二进制序列逆序,然后输出逆序之后的二进制序,所对应的数 #include <stdio.h> // 从原数拿出最低位,放到mid中,mid左移,原数右移 int reverse(int a) { int mid = 0; int bit; int n = 31; for (; n > 0; --n) { bit = a & 1; mid |= bit; mid <<= 1; a >>= 1; } return mid; } int main

c语言:获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。

获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列. 程序: #include<stdio.h> int main() { int i, j, num; char arr1[16]; char arr2[16]; printf("输入一个整数:"); scanf("%d", &num); for (i = 0, j = 0; i < 32; i += 2, j++) { arr1[15 - j] = (num >> 

与整数二进制序列有关的编程题

1.获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列 #include<stdio.h> int main() { inti,j,n,m; chara[32]={0}; printf("peleaseinput the number:"); scanf("%d",&n); for(m=0;m<32;m++) { i=(unsignedint)n%2; j=(unsignedint)n/2; n=j; a[m]=i; } pri

位运算--统计一个数的二进制序列中1的个数

给出一个十进制数,求出该数的二进制序列中1的个数.比如 15 的二进制序列是 00000000  00000000  00000000 00001111   1的个数是4. 下边将给出几种不同的解决办法: 方法一: int count_one(int num) { int count = 0; while (num) { if (num % 2 == 1) { count++; } num = num / 2; } return count; } 由于这种方法用到了模除运算,所以这个方法只能处理

Java8的新特性,二进制序列转十进制数字

package kata_007_二进制序列转十进制int; /** * java8 Lambda表达式转换binary序列->十进制数 */ import java.util.ArrayList; public class ShortBinaryToDecimal { public static void main(String[] args) { ArrayList<Integer> binary = new ArrayList(); binary.add(1); binary.ad

firedac二进制序列和JSON序列的对比

以同样大小的一个数据集的数据,作为测试的数据. 以JSON序列后的数据体积是4958字节. 以二进制序列后的数据体积是3044字节. 4958/3044=1.6287 粗略判断JSON序列后数据的体积是二进制的1.6. 还有XML序列,如果诸位有兴趣的话,大可自行测试一下. 但可以预料的是,体积肯定比二进制的要大. 原文地址:https://www.cnblogs.com/hnxxcxg/p/9678681.html

[Swift]LeetCode761. 特殊的二进制序列 | Special Binary String

Special binary strings are binary strings with the following two properties: The number of 0's is equal to the number of 1's. Every prefix of the binary string has at least as many 1's as 0's. Given a special string S, a move consists of choosing two