码农知识堂 - 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 多平台发布

  • 相关阅读:
    layui2.9.7-入门初学
    Oracle 用Hibernate框架未自动创建字段
    2022-08-19 Mysql--数据库事务
    软件工程国考总结——选择题
    10月《中国数据库行业分析报告》已发布,深度剖析甲骨文大会Oracle技术新趋势
    【微软漏洞分析】MS15-010 CNG 安全功能绕过漏洞 - CVE-2015-0010
    【算法面试必刷Java版九】删除链表的倒数第n个节点
    C++运算符重载
    Google Translate API可以通过在请求中添加参数来忽略HTML标签并仅翻译其中的内容
    CSS详细汇总
  • 原文地址: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号