C语言十六弹 --求两个整数二进制位不同的位数

简介: C语言十六弹 --求两个整数二进制位不同的位数

求两个整数二进制位不同的位数

思路:1.要求不同的个数 就必须遍历比较两个数的二进制位,不同就使用一个三方变量接收++,相同则跳过。

2.使用一个相同的三方变量来作为两者判断条件的基础,而考虑到需要遍历二进制位 则使用1来作为三方变量。

3.比较方法:通过过使用移位符进行依次比较 如果不相同证明位数不同 则三方变量++。

for (int i = 0; i < 32; i++)
{
  if (((a >> i)&1) != ((b >> i)&1))
  {
    count++;
  }
}

总代码

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
  int a = 0, b = 0;
  scanf("%d %d", &a, &b);
  int count = 0;
  for (int i = 0; i < 32; i++)
  {
    if (((a >> i)&1) != ((b >> i)&1))
    {
      count++;
    }
  }
  printf("%d",count);
  return 0;
}


相关文章
|
13天前
|
C语言
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
|
16天前
|
存储 编译器 C语言
C语言基础知识:数据在内存中的存储解析(整数,浮点数)
C语言基础知识:数据在内存中的存储解析(整数,浮点数)
|
2月前
|
C语言
【C语言】求一个整数的二进制序列中1的个数的三种方法
【C语言】求一个整数的二进制序列中1的个数的三种方法
16 0
|
2月前
|
C语言
【C语言】如何只打印小数的有效数字位数且不补0
【C语言】如何只打印小数的有效数字位数且不补0
12 0
【C语言】如何只打印小数的有效数字位数且不补0
|
2月前
|
存储 人工智能 小程序
C语言第二十八弹---整数在内存中的存储
C语言第二十八弹---整数在内存中的存储
|
2月前
|
C语言
C语言刷题:整数加逗号、删除公共字符、求最小公倍数和将字符串倒置
C语言刷题:整数加逗号、删除公共字符、求最小公倍数和将字符串倒置
30 0
|
16天前
|
C语言
C语言:内存函数(memcpy memmove memset memcmp使用)
C语言:内存函数(memcpy memmove memset memcmp使用)
|
2天前
|
存储 编译器 C语言
C语言:字符函数 & 字符串函数 & 内存函数
C语言:字符函数 & 字符串函数 & 内存函数
10 2
|
11天前
|
缓存 安全 编译器
【C 言专栏】C 语言函数的高效编程技巧
【5月更文挑战第1天】本文探讨了C语言中函数的高效编程技巧,包括函数的定义与作用(如代码复用和提高可读性)、设计原则(单一职责和接口简洁)、参数传递方式(值传递、指针传递和引用传递)、返回值管理、调用约定、嵌套与递归调用,以及函数优化技巧和常见错误避免。掌握这些技巧能提升C语言代码的质量和效率。
【C 言专栏】C 语言函数的高效编程技巧
|
13天前
|
C语言
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)