www.delorie.com/gnu/docs/glibc/libc_681.html   search  
Buy the book!

The GNU C Library

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.5.1 Computing the Width of an Integer Data Type

The most common reason that a program needs to know how many bits are in an integer type is for using an array of long int as a bit vector. You can access the bit at index n with

vector[n / LONGBITS] & (1 << (n % LONGBITS))

provided you define LONGBITS as the number of bits in a long int.

There is no operator in the C language that can give you the number of bits in an integer data type. But you can compute it from the macro CHAR_BIT, defined in the header file `limits.h'.

This is the number of bits in a char---eight, on most systems. The value has type int.

You can compute the number of bits in any data type type like this:

sizeof (type) * CHAR_BIT

  webmaster     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003