首页 > 其他分享 >打印整数二进制的奇数位和偶数位

打印整数二进制的奇数位和偶数位

时间:2023-03-12 16:32:37浏览次数:35  
标签:printjiou 奇数 二进制 整数 偶数 int num printf

优化前

/*
思路:
1. 提取所有的奇数位,如果该位是1,输出1,是0则输出0
2. 以同样的方式提取偶数位置


检测num中某一位是0还是1的方式:
1. 将num向右移动i位
2. 将移完位之后的结果与1按位与,如果:
结果是0,则第i个比特位是0
结果是非0,则第i个比特位是1
*/
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//打印整数二进制的奇数位和偶数位
void printjiou(int a)
{
int i = 0;
int j = 0;
for (i=0,j = 31; i<32,j >= 1; i++,j-=2)
{
printf("%d", (a >> j) & 1);
}
printf("\n");
for (i=0, j=30; i<32, j >= 0; i++, j-=2)
{
printf("%d", (a >> j) & 1);
}
printf("\n");
}
int main()
{
printf("请输入一个整数:");
int a = 0;
scanf("%d", &a);
printjiou(a);
return 0;
}

优化后

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//打印整数二进制的奇数位和偶数位
char printjiou(int num)
{
for (int i = 31; i >= 1; i -= 2)
{
printf("%d ", (num >> i) & 1);
}
printf("\n");

for (int i = 30; i >= 0; i -= 2)
{
printf("%d ", (num >> i) & 1);
}
printf("\n");
}
int main()
{
printf("请输入一个整数:");
int num = 0;
scanf("%d", &num);
printjiou(num);
return 0;
}

标签:printjiou,奇数,二进制,整数,偶数,int,num,printf
From: https://blog.51cto.com/EddieLai/6116208

相关文章

  • HJ60 查找组成一个偶数最接近的两个素数
    描述任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。 数据范围:输入的数据满足 4\le......
  • Mongodb存储二进制文件GridFS空间复用测试
    Oracle可以存储二进制文件,测试后发现lob字段再数据delete后表空间不能被复用,考虑将数据存储在mongodb中,mongodb存在GridFS,测试GridFS是否也存在相同的情况mongofiles命令介......
  • 剑指 Offer 21.调整数组顺序使奇数位位于偶数前面
    题目描述   解法一双指针法classSolution{public:vector<int>exchange(vector<int>&nums){intlen=nums.size();vector<int>r......
  • 计算机中整数的二进制表示
    表示方法计算机是通过0和1(二进制)来构建的,无法直接表示生活中常用的十进制整数。用计算机内的二进制串来表达十进制就产生了不同的表示方式,这节就来介绍下这些方式。计算......
  • 环形链表(哈希表、链表)、寻找两个正序数组的中位数(数组、二分查找)、二进制求和(位
    环形链表(哈希表、链表)给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,我们使用整......
  • blob((binary large object),二进制大对象)转化字节流下载附件
    Byte[]blob=null; FileStreamfs=null; conststringsConn="server=(local);Initial Catalog=Northwind;UID=ctester;PWD=password"; try{ SqlConnecti......
  • 看了你就会!!!找偶数
    功能:将长整型数中每一位上为偶数的数依次取出,构成一个新   数放在t中。高位仍在高位,低位仍在低位。例如:当s中的数为:87654时,t中的数为:864。整体思路:  毋庸置疑,我......
  • 无符号二进制加法
    无符号二进制加法,需要保证两个相加的加数均为无符号数,如果有一个位有符号数,则均为有符号运算,结果为有符号数,即对于减法来讲,不存在无符号减法。  无符号A+无符号B=无......
  • Mysql 中二进制日志的初步认知
    二进制日志二进制日志中以“事件”的形式记录了数据库中数据的变化情况,对于MySQL数据库的灾难恢复起着重要的作用。开启二进制日志可以在​​my.cnf​​​文件或者​​my......
  • 每日一练(剑指offer)二进制中1的个数
    描述输入一个整数n,输出该数32位二进制表示中1的个数。其中负数用补码表示。示例输入:10返回值:2说明:十进制中10的32位二进制表示为00000000000000000000000000001010......