Articles of bit manipulación

Bitshift y la promoción de enteros?

Normalmente, C requiere que los operandos de un operador binario se promuevan al tipo del operando de mayor rango. Esto se puede aprovechar para evitar llenar el código con moldes detallados, por ejemplo: if (x-48U<10) … y = x+0ULL << 40; etc. Sin embargo, he descubierto que, al menos con gcc, este comportamiento no funciona […]

¿Cómo definir y trabajar con una matriz de bits en C?

Quiero crear una matriz muy grande en la que escribo ‘0’s’ y ‘1’s’. Estoy tratando de simular un proceso físico llamado adsorción aleatoria secuencial, donde las unidades de longitud 2, dímeros, se depositan en una red n-dimensional en una ubicación aleatoria, sin superposición entre sí. El proceso se detiene cuando ya no queda más espacio […]

¿Cuenta el número de bits en un entero de 64 bits (largo, grande)?

He leído esta pregunta sobre SO de 32 bits, pero ¿qué pasa con los números de 64 bits? ¿Debo enmascarar los 4 bytes superiores e inferiores, realizar el conteo de los 32 bits y luego sumrlos?

¿Funciona la evaluación del comstackdor difieren para la expresión constante y otras expresiones

¿Por qué el código siguiente no se puede comstackr? package main import ( “fmt” “unsafe” ) var x int = 1 const ( ONE int = 1 MIN_INT int = ONE << (unsafe.Sizeof(x)*8 – 1) ) func main() { fmt.Println(MIN_INT) } Me sale un error main.go: 12: constante 2147483648 desborda int La statement anterior es […]

Tutorial Java “Bit Shifting”?

Estaría agradecido por un buen tutorial, que explique a los novatos de Java cómo en Java funciona todo el “cambio de bit”. Siempre me tropiezo con eso, pero nunca entendí cómo funciona. Debería explicar todas las operaciones y conceptos que son posibles con byteshifting / bitmanipulation en java. Esto es solo un ejemplo de lo […]

C # int a byte

Necesito convertir un int a un byte[] Una forma de hacerlo es usar BitConverter.GetBytes() . Pero no estoy seguro si eso coincide con la siguiente especificación: Un entero con signo XDR es un dato de 32 bits que codifica un número entero en el rango [-2147483648,2147483647]. El entero se representa en notación de complemento de […]

¿Debo usar #define, enum o const?

En un proyecto de C ++ en el que estoy trabajando, tengo un tipo de valor de indicador que puede tener cuatro valores. Esos cuatro indicadores se pueden combinar. Los indicadores describen los registros en la base de datos y pueden ser: nuevo record registro eliminado registro modificado registro existente Ahora, para cada registro, deseo […]

SIMD firmado con multiplicación sin signo para 64 bits * 64 bits a 128 bits

Creé una función que usa 64 bits * 64 bits a 128 bits usando SIMD. Actualmente lo he implementado usando SSE2 (acutalmente SSE4.1). Esto significa que tiene dos productos de 64b * 64b a 128b al mismo tiempo. La misma idea podría extenderse a AVX2 o AVX512 dando cuatro u ocho productos de 64b * […]

¿Qué es el enmascaramiento de bits?

Soy bastante nuevo en la progtwigción C, y encontré un poco de enmascaramiento. ¿Puede alguien explicarme el concepto general y la función del enmascaramiento de bits? Los ejemplos son muy apreciados.

¿Por qué XOR es la forma predeterminada de combinar hashes?

Supongamos que tiene dos hashes H(A) y H(B) y desea combinarlos. He leído que una buena forma de combinar dos hash es con XOR , por ejemplo, XOR( H(A), H(B) ) . La mejor explicación que he encontrado se toca brevemente aquí en estas pautas de función hash : XORing dos números con distribución aproximadamente […]