美文网首页
Swift-整数的奇数位与偶数位

Swift-整数的奇数位与偶数位

作者: FlyElephant | 来源:发表于2017-05-22 07:15 被阅读168次

题目:编写程序交换某个整数的奇数位和偶数位,使用指令越少越好(即位0与位1交换,位2与位3交换)。看过题目解析之后才发觉,这题要交换的是整数二进制的奇数和偶数位.
解决思路:
1.操作奇数位,把101010(即0xAA)作为掩码,提取奇数位,并右移1位到偶数位置.
2.操作偶数位,把010101(即0x5555)作为掩码,提取偶数位,并左移一位到奇数位置.
核心代码:
<pre><code>func swapOddEvenBits(num:Int) -> Int { return (((num & 0xaaaaaaaa) >> 1 ) | ( ( num & 0x55555555 ) << 1)) }</code></pre>

测试代码:
<pre><code>var bitNumber:Int = bitManager.swapOddEvenBits(num: 10) print("FlyElephant交换之后的数据---\(bitNumber)")</code></pre>

FlyElephant.png

相关文章

  • Swift-整数的奇数位与偶数位

    题目:编写程序交换某个整数的奇数位和偶数位,使用指令越少越好(即位0与位1交换,位2与位3交换)。看过题目解析之后...

  • js实现金额转大写

    考虑到整数位最多12位,小数位最多2位的情况

  • [剑指offer]刷题笔记

    调整数组顺序使奇数位于偶数前面 复杂链表的复制 二叉搜索树与双向链表 调整数组顺序使奇数位于偶数前面【数组】 题目...

  • Angular 小数管道符

    number管道用来将数字处理为需要的小数格式 接收的参数格式为:{最少整数位数}.{最少小数位数}-{最多小数位...

  • 《剑指 Offer (第 2 版)》第 21 题:调整数组使得奇

    第 21 题:调整数组使得奇数位于偶数之前 传送门:AcWing:调整数组顺序使奇数位于偶数前面,牛客网 onli...

  • 四、PostgreSQL常用数据类型(精简)

    1、数值数据类型 备注:(1)numeric 不指定长度,可以保留的整数位和小数位很大;(2)numeric(6,...

  • Python的几种取整方法

    1、向下取整,即只取整数位的值,不管小数位 此时我们可以用built-in function int()函数 2、...

  • PTA 7-1 多二了一点 (15 分)

    题目 若一个正整数有 2n 个数位,后 n 个数位组成的数恰好比前 n 个数位组成的数多 2,则称这个数字“多二了...

  • 奇偶数排序

    /* 奇偶数排序 给定一个整数数组,请调整数组中的数的顺序,使得所有奇数位于 数组的前半部分,所有偶数位于数组...

  • 奇偶调序

    奇偶调序 题目描述: 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后...

网友评论

      本文标题:Swift-整数的奇数位与偶数位

      本文链接:https://www.haomeiwen.com/subject/rvyvxxtx.html