Acerca del operador de desplazamiento a la izquierda "<< "
En el proceso de lectura del código fuente, encontré "7 <<16". Luego fui a Baidu y descubrí que este es el operador de desplazamiento a la izquierda. Miré hacia abajo y descubrí que hay mucho conocimiento sobre este pequeño operador, por lo que no entraré en detalles aquí, solo quiero brindar información superficial para facilitar la memoria. En las definiciones de macros de iOS, es necesario prestar especial atención al orden de prioridad de los operadores. Adjunto se encuentra la entrada a la tecnología negra definida por Mao Shenhong.
Los punteros son óptimos y las operaciones unimodales son mejores que las bimodales. Por ejemplo, signos más y menos.
Primero se realizan operaciones aritméticas, luego operaciones de desplazamiento, luego operaciones de bits y finalmente se calculan operaciones lógicas.
(Operador bit a bit: & ^ | )
Preste especial atención a:
1 << 3 + 2 && 7 es equivalente a (1 << (3 + 2))&&7.
Operaciones monomios > Operaciones binomiales > Operaciones trinomiales. b : c)
Operaciones de puntero > Operaciones aritméticas > Operaciones de bits > Operaciones de bits > Operaciones lógicas
Algunos problemas causados por las operaciones de bits
En las computadoras, Un byte Ocupa 8 bits, es decir, un byte ocupa 8 bits (00000000) y un carácter chino ocupa 2 bytes, que ocupa 16 bits. Y nsinteger ocupa diferentes bits en diferentes sistemas. (Portal)
int ocupa 4 bytes
long ocupa 4 bytes
NSInteger es un alias de int y ocupa 4 bytes
p>long long ocupa 8 bytes
int32_t es el alias de int, ocupa 4 bytes
int64_t es el alias de long long, ocupa 8 bytes int64_t es un alias de long long, que ocupa 8 bytes
Dado que la cantidad de bytes de long y NSInteger cambiará, puede ocurrir un desbordamiento durante la compatibilidad del sistema, por lo tanto, use int, long long (o int32_t, int64_t) y otros tipos de datos para que sean compatibles. Los sistemas de 32 y 64 bits son más confiables que usar NSInteger.
A continuación se muestra información adicional proporcionada por CatGod Macro Definición Magia Negra solo como referencia, por si acaso.