Articles of bit manipulação

bit a bit E em Javascript com um inteiro de 64 bits

Eu estou procurando uma maneira de executar um bit a bit E em um inteiro de 64 bits em JavaScript. JavaScript irá converter todos os seus valores duplos em números inteiros de 32 bits para fazer as operações bit a bit ( detalhes aqui ).

A avaliação do compilador é diferente para expressão constante e outra expressão

Por que o código abaixo falha na compilation? 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) } Eu recebo um erro main.go: 12: constante 2147483648 transborda int A declaração acima está correta. […]

Acelerar as operações bitstring / bit no Python?

Eu escrevi um gerador de números primos usando o Sieve of Eratosthenes e o Python 3.1. O código é executado corretamente e graciosamente em 0,32 segundos no ideone.com para gerar números primos até 1.000.000. # from bitstring import BitString def prime_numbers(limit=1000000): ”’Prime number generator. Yields the series 2, 3, 5, 7, 11, 13, 17, 19, […]

Como adicionar dois números sem usar ++ ou + ou outro operador aritmético

Como eu adiciono dois números sem usar ++ ou + ou qualquer outro operador aritmético? Foi uma pergunta feita há muito tempo em uma entrevista no campus. De qualquer forma, hoje alguém fez uma pergunta a respeito de algumas manipulações de bits, e em respostas, uma bela história de Stanford foi encaminhada. Eu gasto algum […]

Como fazer bit a bit E em javascript em variables ​​que são maiores que 32 bits?

Eu tenho 2 números em javascript que eu quero bit e. Ambos são 33bit long em c #: ((4294967296 & 4294967296 )==0) is false mas em javascript: ((4294967296 & 4294967296 )==0) is true 4294967296 é ((longo) 1) << 32 Pelo que entendi, é devido ao fato de que javascript converte valores para int32 ao executar […]

Explique esse trecho que encontra o máximo de dois inteiros sem usar o if-else ou qualquer outro operador de comparação?

Encontre o máximo de dois números. Você não deve usar if-else ou qualquer outro operador de comparação. Eu encontrei esta pergunta no boletim on-line, então eu pensei que deveria perguntar no StackOverflow EXEMPLO Entrada: 5, 10 Saída: 10 Eu encontrei esta solução, alguém pode me ajudar a entender essas linhas de código int getMax(int a, […]

Comportamento estranho do operador do turno direito (1 >> 32)

Eu recentemente enfrentei um comportamento estranho usando o operador do turno da direita. O seguinte programa: #include #include #include #include int foo(int a, int b) { return a >> b; } int bar(uint64_t a, int b) { return a >> b; } int main(int argc, char** argv) { std::cout << "foo(1, 32): " << foo(1, […]

Computação rápida de log2 para inteiros de 64 bits

Um ótimo recurso de programação, Bit Twiddling Hacks, propõe ( aqui ) o seguinte método para calcular log2 de um inteiro de 32 bits: #define LT(n) n, n, n, n, n, n, n, n, n, n, n, n, n, n, n, n static const char LogTable256[256] = { -1, 0, 1, 1, 2, 2, 2, […]

Entendendo o operador E bit a bit

Eu tenho lido sobre operadores bit em Objective-C no livro de Kochan, “Programming in Objective-C”. Estou muito confuso sobre esta parte, embora eu tenha realmente entendido quase tudo o mais que me foi apresentado até agora. Aqui está uma citação do livro: O operador bit a bit AND O ANDing bit a bit é freqüentemente […]

Operadores bitwise e “endianness”

O endianness importa com as operações bitwise? Lógico ou mudando? Eu estou trabalhando no dever de casa com respeito aos operadores bit a bit, e eu não posso fazer cara ou coroa nele, e eu acho que estou ficando bastante preso na endianess. Ou seja, estou usando uma pequena máquina endian (como a maioria é), […]