输出一个数二进制的所有位及奇偶位

首先我们看一下输出一个整数二进制的所有位。

如果要输出它的所有位,从最高位开始每次移动i个长度,并且每一位都与1。

代码:

#include <stdio.h>

int main()
{
	int num = 9;
	int i;
	for (i = 31; i>=0;i--)
	{
		printf("%d",((num>>i)&1));
	}
	return 0;
}

同理奇数位从它的最高位开始,每次移动i个长度并且i=i-2,每一位都与1,。偶数位从第二为开始与奇数位移动相同。

代码:

#include <stdio.h>
int main()
{
	int i;
	int num=9;
	printf("奇数位");
	for (i=31;i>=0;i-=2)
	{
		printf("%d",((num>>i)&1));
	}
	printf("偶数位");
	for (i=30;i>=0;i-=2)
	{
		printf("%d",((num>>i)&1));
	}
	return 0;
}
时间: 2024-10-10 11:06:28

输出一个数二进制的所有位及奇偶位的相关文章

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

【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++) {    

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

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

#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++; }

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

思路:要判断一个整数的二进制偶数位是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

剑指offer11:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。(进制转换,补码反码)

1. 题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 2. 思路和方法 使用移位(<<)和 “| & !”操作来实现.1的二进制是:前面都是0,最后一位为1.每次向左移位一下,使得flag的二进制表示中始终只有一个位为1,每次与n做位与操作,这样就相当于逐个检测n的每一位是否是1.unsigned int flag = 1; 3. C++核心代码 3.1 位运算 1 class Solution { 2 public: 3 int NumberOf1(int

【C语言】输入一个整数,输出该数二进制表示中1的个数(三种方法)

输入一个整数,输出该数二进制表示中1的个数.如输入32,输出1. 代码实现: 方法1:与运算 #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std; int FindOneNumber(unsigned int num) {     int numberofOne = 0;     while (num)     {         num = num & (num - 1);         

22、输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 思路: n &(n-1)把n的最右边的1去掉,用count++计算1的个数  eg: 101 & 100 = 100   1 class Solution { 2 public: 3 int NumberOf1(int n) { 4 int count = 0; 5             while(n!=0){ 6                 count++; 7                 n = n&

输入一个十进制整数,输出该数二进制表示中1的个数。其中负数用补码表示

<剑指offer>: 首先熟悉一下java自带的进制之间转换的api: /*java中进行二进制,八进制,十六进制,十进制间进行相互转换十进制转成十六进制:Integer.toHexString(int i)十进制转成八进制Integer.toOctalString(int i)十进制转成二进制Integer.toBinaryString(int i)十六进制转成十进制Integer.valueOf("FFFF",16).toString()八进制转成十进制Integer.