-5
int fd = open("/dev/mem", O_RDWR);
present = (unsigned char *)mmap(0, 
              getpagesize(), 
              PROT_READ|PROT_WRITE, 
              MAP_SHARED, 
              fd, 
              0x22400000);

if ((*present & 1) == 0)
{
  printf("Converter not present\n");
  exit(1);
}

1) 上記のコードの「&」演算子は何を意味しますか?

4

1 に答える 1

4

それはビットごとの and 演算子です。これは、演算の結果がand2 つのオペランドのバイナリをビット単位で実行することであることを意味します (つまり、ビットごとに)。

この場合、present が指すメモリの最初のビットが 0 であることを確認しています。

于 2013-02-18T03:20:23.990 に答える