Date
Dec. 22nd, 2024
 
2024年 11月 22日

Post: iOS 入门 001: C语言位运算

iOS 入门 001: C语言位运算

Published 12:04 Apr 01, 2012.

Created by @ezra. Categorized in #Programming, and tagged as #iOS.

Source format: Markdown

Table of Content

位运算符可以直接对二进制数位进行操作

& (按位与)

  • 两个对应位都为1则得1,有0则得0按位与可以把某个二进制数位置0任何数位和0按位与结果为0,和1按位与结果不变
3 & 5:
3   0000 0011
5   0000 0101
    0000 0001

| (按位或)

  • 两个对应位都为0则得0,有1则得1按位或可以把某个二进制数位置1任何数位和0按位或结果不变,和1按位或结果为1
3 | 5:
3   0000 0011
5   0000 0101
    0000 0111

\^(按位异或)

  • 两个对应位相同则得0,不同则得1按位异或可以把某个二进制数位求反任何数位和0按位异或结果不变,和1按位异或,1变为0、0变为1
3 ^ 5:
3   0000 0011
5   0000 0101
    0000 0110

<<(左移位运算符)、>> (右移位运算符)

  • 可以把一个数据中的所有二进制为向左或向右移动n个位置,但不会改变参与计算的数字,格式为num << nnum >> n
  • 左移操作后,右边的空位置上一定补0
3 << 5
3   0000 0011
    0110 0000
  • 右移操作后,有符号数据左边空位置补符号位,无符号数据左边空位置补0
-48 >> 2
-48 1101 0000
    1111 0100
  • 如果移位操作过程中没有丢失有效数字

    • 左移n位相当于乘以2的n次方

    • 右移n位相当于除以2的n次方

Pinned Message
HOTODOGO
The Founder and CEO of Infeca Technology.
Developer, Designer, Blogger.
Big fan of Apple, Love of colour.
Feel free to contact me.
反曲点科技创始人和首席执行官。
开发、设计与写作皆为所长。
热爱苹果、钟情色彩。
随时恭候 垂询