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

#include<stdio.h>

int main()
{
int arr[32];
int m=0,i=0,count=0;
printf("请输入一个十进制数:\n");
scanf("%d",&m);
for(i=0;m!=0;i++)
    { 
        arr[i]=m%2;
        m=m/2;
        count=i+1;
    }
    for(;count<32;count++)
	{
	    arr[count]=0;
	}
    printf("转换为二进制后奇数位为:\n");
	for(i=31;i>=0;i-=2)
	    {
		printf("%d ",arr[i]);
	    }
	printf("\n");
	printf("转换为二进制后偶数位为:\n");
	    for(i=30;i>=0;i-=2)
	        {     
		    printf("%d ",arr[i]);
	        }
            printf("\n");
return 0;
}
时间: 2024-10-10 15:38:24

【C语言】获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列的相关文章

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 >> 

获取一个数二进制序列中所有的偶数位和奇数位

思路:要判断一个整数的二进制偶数位是0还是1,则可以用这个整数和1或2进行&的用算,之后进行右移在进行&的用算,知道右移为0结束. 可以利用这种方法提取二进制数. 1 #include<stdio.h> 2 #define _CRT_SECURE_NO_WARNINGS 3 4 void Find_even(int a) 5 { 6 //int c; 7 //int a = 11;//0000 1011 8 //int b = 12;//0000 1100 9 // 36 00

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

#include <stdio.h> #include<math.h> int main() { int a,i; int count=0; int temp1[16]; int temp2[16]; scanf("%d",&a); while(count<32) { temp1[count/2]=a%2; a=a>>1; count++; temp2[(count-1)/2]=a%2; a=a>>1; count++; }

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

#include<stdio.h> int main() { int num,i,j,m,a[16],b[16];  scanf("%d",&num); m=sizeof(a)/sizeof(a[0]); for(i=0,j=0;j<32;i++,j+=2) { a[m-1-i]=(num>>j)&1;/*num向右移动j位,数组a被倒序输入*/   } printf("偶数位为:"); for(i=0;i<m;i

C语言:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删去,-将a所指字符串中的字符和b所指字符串中的字符的顺序交叉,-将形参s所指字符串中的所有数字字符顺序前移,

//函数fun功能:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删去,s所指串中剩余的字符形成的新串放在t所指的数组中. 1 #include <stdio.h> 2 #include <string.h> 3 4 void fun(char *s, char t[]) 5 { 6 int i=0,j=0; 7 while (s[i] != '\0') 8 { 9 if (i % 2 == 0) 10 { 11 if ((int)(s[i]) % 2 == 1)//判断A

求出两个int(32位)整数m和n的二进制表达中,有多少bit位不同

#include<stdio.h> #define MAX(X,Y) ((X)<(Y)?(X):(Y)) int main() { int a = 1999; int b = 2299; int num = 1; int nam; if (b % 2 == 1) { nam = 1; } else { nam = 0; } do { int A = a % 2; int B = b % 2; if (A != B) { num++; } else { num = num; } a = a

每天一道算法题:数字二进制形式中1的个数

题目:请实现一个函数,属于一个整数,输出该数二进制表示中1的个数,例如把9表示成二进制是1001,有2位为1.因此如果输入9,该函数输出2. 可能的死循环陷阱 看完题目,相信大家很快就能想到一个解题思路:先判断整数二进制表示中最右边的一位是否为1,接着把输入的整数右移一位,此时原来处于从右边起的第二位被移动至最右边了,再判断是不是1,这样每次移动一位,直到这个整数变成0,即能够得到整数二进制表示形式中1的个数,而现在问题变为如何判断数字的最后一位为1,其实这个也很简单,只需要将数字与1做与运算,

golang 中获取字符串个数

golang 中获取字符串个数 在 golang 中不能直接用 len 函数来统计字符串长度,查看了下源码发现字符串是以 UTF-8 为格式存储的,说明 len 函数是取得包含 byte 的个数 // string is the set of all strings of 8-bit bytes, conventionally but not // necessarily representing UTF-8-encoded text. A string may be empty, but //

编程之美1——一个数的二进制表示中1的个数

这里要介绍3种解法 第一种:(常规解法) 数在计算机内部都是用二进制表示的,所以可连续用数n除2 代码1: <span style="font-size:14px;">#include <iostream> using namespace std; int main(void) { int n,m; m=0; cin>>n; while(n) { if(n%2) //如果n不能整除2,说明当前n的末尾数为1 m++; n>>=1; //n