(笔记)两种判断奇数偶数的方法

学习的需要,查找了如何判断奇偶数的方法,自己做了以下笔记。

方法来自网络,已标明出处。

方法一 、求余%
具体实现:
1、if( x % 2 )
    // 奇数
     else
    // 偶数
2、(x%2)?奇数:偶数

分析:

根据奇数偶数的定义,若整数除以2没有余数,则为偶数,否则为奇数。

因此,偶数取余结果为0,奇数取余结果为非零

在if(条件)判断中,若条件为非零,表示条件成立,否则表示条件不成立(即不执行if()之后的语句)

?:的情况类似

方法二 、与1相与  &1
具体实现:
1、if( x & 1 )
  // 奇数
     else
   // 偶数
2、(x&1)?奇数:偶数

分析:

首先得知道按位与运算&的使用方法

按位与运算      a&b

参与运算的两数各对应的二进位相与,只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。

例如:9&5可写算式如下:

先分别将两个数化为二进制,在进行运算

00001001 (9的二进制补码)

&  00000101 (5的二进制补码) 

—————

00000001 (1的二进制补码)

可见9&5=1。

对于任何一个数 & 1,因为1的二进制是1,在它的补码中,除了最后一位为1,其它全部为0,前面提到,按位与运算&只有当两个数都为1时结果才是1,因此,任何一个数与1相与,只有最低位可能为1,因此最终的结果只有0和1两种情况,而且结果取决于另外那个数二进制中的最后一位(若为1,最终结果便为1,若为0,结果便是0)

从二进制化为十进制中,需要加上二进制中最低位乘以2的零次方(1*2^0或0*2^0),然后再加上 对应位乘以 2^1,2^2,2^3,2 ^4……但是之后这一些都数2的倍数,也就是都是偶数,要让这些偶数编程奇数,取决于  2^0这一项,即,一个十进制数字是奇数还是偶数,取决于二进制中最低位那个数是0还是1。

参阅:

http://blog.csdn.net/weilaixi/article/details/3927826

http://bbs.csdn.net/topics/120108509

(笔记)两种判断奇数偶数的方法相关推荐

  1. python输出偶数_Python 判断奇数偶数的方法

    Python 判断奇数偶数的方法 以下实例用于判断一个数字是否为奇数或偶数: # -*- coding: UTF-8 -*- # Filename : test.py # Python 判断奇数偶数 ...

  2. JavaScript中变量判断是否是数字,判断是否是整数,判断是否是正整数/负整数,判断奇数/偶数的方法

    (1)判断是否是整数  JavaScript中变量判断是否是数字,判断是否是整数,判断是否是正整数/负整数,判断奇数/偶数的方法. (1)判断是否是整数 // 判断整数function isInteg ...

  3. sql 判断分钟是偶数数据_mssql sqlserver判断一个整数是否为奇数偶数的方法分享...

    摘要: 下文讲述使用自定义函数的方法,判断一个数值是否为奇数偶数的方法分享,如下所示: 实验环境:sql server 2008 R2 实现思路: 奇数的概念: 我们将不能被2整除的数称之为" ...

  4. c语言判断奇数偶数_使用C语言宏检查偶数或奇数

    c语言判断奇数偶数 There are many ways to check whether a given number is EVEN or ODD, which we have already ...

  5. android内存池,两种常见的内存管理方法:堆和内存池

    描述 本文导读 在程序运行过程中,可能产生一些数据,例如,串口接收的数据,ADC采集的数据.若需将数据存储在内存中,以便进一步运算.处理,则应为其分配合适的内存空间,数据处理完毕后,再释放相应的内存空 ...

  6. EasyJoyStick使用以及两种操作杆 EasyJoyStick的使用方法,简单的不能再简单 Hedgehog Team-》Easy Touch -》Add Easy Touch For C#

    EasyJoyStick使用以及两种操作杆 EasyJoyStick的使用方法,简单的不能再简单 Hedgehog Team->Easy Touch ->Add Easy Touch Fo ...

  7. [转载]:C#两种不同的存储过程调用方法

    两种不同的存储过程调用方法 为了突出新方法的优点,首先介绍一下在.NET中调用存储过程的"官方"方法.另外,本文的所有示例程序均工作于SqlServer数据库上,其它情况类似,以后 ...

  8. 两种常见的内存管理方法:堆和内存池

    在程序运行过程中,可能产生一些数据,例如,串口接收的数据,ADC采集的数据.若需将数据存储在内存中,以便进一步运算.处理,则应为其分配合适的内存空间,数据处理完毕后,再释放相应的内存空间.为了便于内存 ...

  9. 两种 js下载文件的方法(转)

    2019独角兽企业重金招聘Python工程师标准>>> 两种 js下载文件的方法(转) functionDownURL(strRemoteURL, strLocalURL){try{ ...

最新文章

  1. 神经网络完成芯片设计仅需几小时
  2. [Python爬虫] scrapy爬虫系列 一.安装及入门介绍
  3. Go学习笔记—Channel通道
  4. 静态成员常量的初始化
  5. nginx的源代码分析--间接回调机制的使用和类比
  6. 9.7英寸 IPS 屏平板 选购
  7. 双系统ubuntu无法进入_win10下安装ubuntu双系统
  8. java的输入输出流类型_理解JAVA输入输出流
  9. python爬取天天基金网_Python爬虫日记二:爬取天天基金网
  10. hdu 2079 选课时间(题目已修改,注意读题)
  11. SLAM综述阅读笔记一:Past, Present, and Future of Simultaneous Localization And Mapping(2016)
  12. 2015阿里巴巴校招网上笔试
  13. 互联网经典算法面试题-验证二叉搜索树
  14. 微信小程序记事本+后台管理系统
  15. uboot官方http下载地址
  16. pairs和iparis
  17. MFC系列 - 第一个MFC入门程序
  18. 论目前最好的中文搜索引擎
  19. wps 分节符(连续) 自动变成 分节符(下一页) 解决办法
  20. URL地址中的%2F、%3F、%3D、%3A是什么意思

热门文章

  1. PL/SQL中Lpad函数和Rpad函数的用法
  2. 数据库总结(四):MySQL数据表的检索
  3. mac解压7z格式文件
  4. #学习笔记#Excel#Power Query 提取特定字段
  5. C#线程中使用委托方式设置控件属性
  6. 协议篇之Modbus协议入门
  7. 计算机程序设计艺术(中文版)
  8. Java语言程序设计(一)
  9. 可调电阻封装图_常用电阻器介绍大全
  10. 微鳄365,可私有化部署的企业管理软件,让数据更安全让管理更方便