美文网首页iOS开发
swift高级运算符16进制的与运算

swift高级运算符16进制的与运算

作者: qiulibi | 来源:发表于2017-06-29 14:51 被阅读8次

    最近刚学了swift的高级运算,但是开始对于看到例子中对16进制的的运算是看着一头雾水。

    后来我在想一般的与运算是通过二进制运算,那16进制的估计也是通过二进制转换得到的结果。后来进过验算,发现一个规律,他不是直接将16进制转成二进制,因为根本就存储不下,而是通过每个位数的16进制转成二进制,比如说CC6699,转成二进制进行运算是应该是如下(注意:16进制的需要用4位二进制,所以不足4位的用0补齐): 

    1100  1100  0110  0110  1001  1001

    所以在swift中讲到的高级运算符中的一个例子中,

    let pink:UInt32=0xCC6699

    let redComponent = (pink &0xFF0000) >>16

    那么0xCC6699和0xFF0000进行按位与运算就可以转成如下两个进行与运算:

    1100  1100  0110  0110  1001  1001 

    1111  1111  0000  0000  0000  0000

    得到的结果应该为:

    1100  1100  0000  0000  0000  0000

    再将其转成16进制,即为:CC0000

    与swift中的列子结果相符。

    此算法要是有什么不正确的说法,欢迎大家指正,这只是个人的理解~

    相关文章

      网友评论

        本文标题:swift高级运算符16进制的与运算

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