首页 > 其他分享 >判断奇偶数的小妙招

判断奇偶数的小妙招

时间:2024-09-11 13:52:17浏览次数:14  
标签:奇偶 判断 知识点 二进制 number 末位 小妙

要判断一个数是奇数还是偶数,一般首先想到的都是对2取余,但其实有更高明的算法。

首先咱们要知道一个知识点:偶数的二进制末位为0,奇数的二进制末位为1。

这是进位制本身的规则决定的,二进制是“逢二进一”。如果末位为0,说明它“逢”的都是二,没有零头,即它一定能被2整除。

同时,如果八进制、十进制、十六进制的末位为0,就表示这个数能分别被8、10、16整除。

明白了这个知识点,咱们只需要两步就能判断出一个数的奇偶;

①取要判断的数的二进制的末位。

②判断末位是0还是1。

第①步没有必要先将这个数转化为二进制,因为不管你输入的数是几进制的,在计算机内部都是按二进制计算的。要取出二进制的末位,只需要用到一个简的位运算:用这个数“& 1”。

按位与(&)的运算规则是只有当两个对应二进制位都为1时,结果才为1,否则结果为0。1表示只有末位是1,前面都是0,所以不管一个二进制数有多少位,“&1”的结果必然只剩末位数。

比如:

代码如下:

#include<stdio.h>
int main(){
    int i;
    scanf("%d", &i);
    if((i&1)==0){
        printf("even number\n");
    } else {
        printf("odd number\n");
    }
    return 0;
}

标签:奇偶,判断,知识点,二进制,number,末位,小妙
From: https://blog.csdn.net/jjmhx/article/details/142138013

相关文章

  • OpenCV结构分析与形状描述符(17)判断轮廓是否为凸多边形的函数isContourConvex()的使用
    操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:VisualStudioCode编程语言:C++11算法描述测试轮廓的凸性。该函数测试输入的轮廓是否为凸的。轮廓必须是简单的,即没有自相交。否则,函数的输出是不确定的。cv::isContourConvex函数是OpenCV提供的一个用于判断轮廓是否......
  • OpenCV结构分析与形状描述符(16)判断两个凸多边形是否相交的函数intersectConvexConvex(
    操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:VisualStudioCode编程语言:C++11算法描述查找两个凸多边形的交集。intersectConvexConvex是一个在OpenCV中用于判断两个凸多边形是否相交的函数。此函数可以帮助我们确定两个二维凸多边形是否在平面上有重叠区域。函......
  • 4.输入某年某月某日,判断这一天是这一年的第几天?
    【程序4】题目:输入某年某月某日,判断这一天是这一年的第几天?1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。2.程序源代码:defis_leap_year(year):return(year%400==0)or((year......
  • 【05】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-条件渲染+if/switch判断与for/
     序言:本文详细介绍了ArkTs语言中的数组、if单双多分支判断、switch判读、while循环、for循环并给出相应的具体案例和实现代码,附有综合案例京东购物的加购。笔者也是跟着B站黑马的课程一步步学习,学习的过程中添加部分自己的想法整理为笔记分享出来,如有代码错误或笔误,欢迎指正......
  • 判断数正负C++
    给定一个整数N,判断其正负。如果N>0,输出positive;如果N=0,输出zero;如果N<0,输出negative。输入输入一个整数N(−109≤N≤109)N(−10​9​​≤N≤10​9​​)输出如果N>0,输出positive;如果N=0,输出zero;如果N<0,输出negative。样例输入1        1样例输......
  • 【delphi】判断多显示器下,程序在那个显示器中
    在Delphi中,如果你的电脑连接了多个显示器,可以通过以下步骤判断某个程序在哪个显示器上运行。方法概述:获取程序窗口的位置(例如窗体的Left、Top坐标)。使用Screen.MonitorFromWindow函数来确定该窗口所属的显示器。关键概念:TMonitor:表示一个显示器,包含该显示器的边界(B......
  • 在 Web 中判断页面是不是刷新
    在Web开发中,我们经常需要区分用户是否通过刷新操作重新加载了页面。这一操作可能是由用户手动刷新(如按下F5键或点击浏览器刷新按钮)或通过浏览器自动重新加载。判断页面是否刷新有助于开发者优化用户体验,例如在使用vue的时候需要进行权限控制,就需要判断在刷新后根据登录者的......
  • 【408DS算法题】039进阶-判断图中路径是否存在
    Index题目分析实现总结题目对于给定的图G,设计函数实现判断G中是否含有从start结点到stop结点的路径。分析实现对于图的路径的存在性判断,有两种做法:(本文的实现均基于邻接矩阵存储方式的图)1.图的BFSBFS的思路相对比较直观——从起始结点出发进行层次遍历,遍历过程......
  • C++判断文件是否被占用
    1.代码#include<windows.h>#include<iostream>boolIsFileInUse(conststd::wstring&filePath){HANDLEhFile=CreateFileW(filePath.c_str(),GENERIC_READ,0,//不允许其他进程共享NULL,OPEN_EXISTING,......
  • shell请求api,获取json返回值,做判断
    1.shell如何请求api,获取到json返回值:https://www.cnblogs.com/pingguomang/p/184050112.shell如果解析json数据: https://www.cnblogs.com/pingguomang/p/184049963.shell的条件判断:#定义用户的iduser_id="199348"#1.调用api--获取用户数据详细信息response=$(curl......