Partilhar via


__lzcnt16, __lzcnt, __lzcnt64

Específicos do Microsoft

Conta o número de líderes zeros em 16-, 32 ou 64 bytes inteiro.

unsigned short __lzcnt16(
   unsigned short value
);
unsigned int __lzcnt(
   unsigned int value
);
unsigned __int64 __lzcnt64(
   unsigned __int64 value
);

Parâmetros

  • [in]value
    16-, 32 Ou 64 bits inteiro não assinado para fazer a varredura de zeros à esquerda.

Valor de retorno

O número de líderes de zero bits de value parâmetro. Se value é zero, o valor de retorno é o tamanho do operando de entrada (16, 32 ou 64). Se mais pouco significativo de value é um valor de retorno é zero.

Requisitos

Intrínseca

Arquitetura

__lzcnt16

Avançados de manipulação de bits

__lzcnt

Avançados de manipulação de bits

__lzcnt64

Avançados de manipulação de bits no modo de 64 bits.

Arquivo de cabeçalho <intrin.h>

Comentários

Cada um desses intrínsecos gera o lzcnt instrução. O tamanho do valor que o lzcnt instrução retorna é o mesmo tamanho do argumento. No modo de 32 bits não há nenhuma 64 bits geral registra, portanto, não de 64 bits lzcnt.

Para determinar o suporte de hardware para o lzcnt chamada de instrução do __cpuid intrínseca com InfoType=0x80000001 e verificar o bit 5 da CPUInfo[2] (ECX). Esse bit será 1 se a instrução for aceito e 0 caso contrário. Se você executa código que usa intrínseca neste hardware não oferece suporte a lzcnt as instruções, os resultados são imprevisíveis.

Exemplo

// Compile this test with: /EHsc
#include <iostream> 
#include <intrin.h> 
using namespace std; 

int main() 
{
  unsigned short us[3] = {0, 0xFF, 0xFFFF};
  unsigned short usr;
  unsigned int   ui[4] = {0, 0xFF, 0xFFFF, 0xFFFFFFFF};
  unsigned int   uir;

  for (int i=0; i<3; i++) {
    usr = __lzcnt16(us[i]);
    cout << "__lzcnt16(0x" << hex << us[i] << ") = " << dec << usr << endl;
  }

  for (int i=0; i<4; i++) {
    uir = __lzcnt(ui[i]);
    cout << "__lzcnt(0x" << hex << ui[i] << ") = " << dec << uir << endl;
  }
}
  

END Microsoft específicos

Copyright 2007 pela Advanced Micro dispositivos, Inc. todos os direitos reservados. Reproduzido com permissão do Advanced Micro dispositivos, Inc.

Consulte também

Referência

Intrínsecos do compilador