前言
主要学习2进制输出方式
1.题目:
获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列。
分析:
打印一个整数的二进制位中的偶数位和奇数位,可以对整数进行移位操作(反向打印),再将移位的二进制位与1进行&操作,
案例1
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int n = 0; scanf("%d", &n); printf("2进制:\n"); for (int i = 32; i >= 0; i--) { printf("%d ", (n >> i) & 1); //反向打印 } printf("\n奇数位:\n"); for (int i = 31; i >= 0; i -= 2) { printf("%d ", (n >> i) & 1); } printf("\n偶数位:\n"); for (int i = 32; i > 0; i -= 2) { printf("%d ", (n >> i) & 1); } return 0; }
输出结果:
案例2
#include<stdio.h> void Print(int n) { int i = 31; printf("二进制位:"); while (i >= 0) { printf("%d ", (n >> i) & 1); i--; //此处是使结果正向打印 } printf("\n"); printf("奇数位:"); for (i = 30; i >= 0; i-=2) //此处是使结果正向打印 { printf("%d ", (n >> i) & 1); } printf("\n"); printf("偶数位:"); for (i = 31; i >= 1; i -= 2) //此处是使结果正向打印 { printf("%d ", (n >> i) & 1); } printf("\n"); } int main() //获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列 { int a = 0; scanf("%d", &a); Print(a); return 0; }
输出结果: