码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 怎样判断一个数是否为偶数


    要求代码行数尽可能少;

    package main

    import (
     "fmt"
     "strconv"
    )

    func main(){

     fmt.Printf("传入的值是否为奇数:%t\n",Judge_is_even(7))


    }

    func Judge_is_even(num int) bool {

     //fmt.Println(num % 2)
     rs, _ := strconv.ParseBool(strconv.Itoa(num % 2))
     return rs

    }

    • 1

    num % 2,值为0时即无余数,为偶数;值为1时即余1,为奇数;

    Go中泛int型无法直接转换为bool类型,需要先转成string..再由string转为bool




    要求性能尽可能高:

    考虑本质,用位运算.

    一个整数,无论占1个Byte还是2个或4个,即无论能表征2的8次方多的整数,亦或是2的16次方或2的32次方多,但在二进制转十进制中,其最后一个坑位都是X*2的0次方即X(X为0或1),而其上面几位为0或1乘以2的1-n次方,必为偶数,故而最后一位X为0或1,即决定了整个整数的奇偶:如果为0,最后一位值为0*2的0次方=0*1=0,为偶数;如果为1,则为1*1=1,为奇数;

    "计算机中的数字通常用二进制补码表示——

    如果为正数,补码与原码相同,直接看最后一位(因为数字1的前面N位均为0,跟它做与运算,前面肯定为0),奇数为1,偶数为0,与1相与,结果不变。

    如果为负数,补码转原码:保持符号位不动,其它各位取反+1,即为负数的绝对值原码全部取反+1。还是看最后1位,先取反,再+1,结果还是和原来相同。进行与运算时还是原来的末位,所以用跟1做与运算还是保持原来的结果。"

    奇数的二进制数的最后一位永远是 1,与 1 按位且只会得到 1,偶数相反。

    package main

    import (
     "fmt"
     "strconv"
    )

    func main() {

     fmt.Printf("传入的值是否为奇数:%t\n", Judge_is_even(81))

    }

    func Judge_is_even(num int) bool {
     
     rs, _ := strconv.ParseBool(strconv.Itoa(num & 1))
     return rs

    }

    • 1

    可参考[1]

    参考资料

    [1]

    可参考: https://learnku.com/articles/10153/odd-even-number-judgment-by-bit-operation

    本文由 mdnice 多平台发布

  • 相关阅读:
    vue笔记
    学习阿里如何进行数据指标体系的治理
    SSM - Springboot - MyBatis-Plus 全栈体系(二十三)
    k8s 基础
    Django templates 存放html目录
    【python实战】朋友因股票亏了,很惨常愤恨不平,当天我就分析出原因:怎么做到的?(听说关注我的人会暴富)
    架构升级实践
    收藏-即时通讯(IM)开源项目OpenIM-功能手册
    springboot实现WebAPI版本控制
    一篇短小精悍的文章让你彻底明白KMP算法中next数组的原理
  • 原文地址:https://blog.csdn.net/techdashen/article/details/133090462
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号