---
name: "TIFFswab"
section: "3tiff"
platform: "linux"
package: "libtiff-dev"
version: "4.7.0-3+deb13u3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/TIFFswab/3tiff"
---

# TIFFswab(3tiff)

byte- and bit-swapping routines

## NAME

TIFFswab - byte- and bit-swapping routines

## SYNOPSIS

```
#include <tiffio.h>
```

- **const unsigned char \*TIFFGetBitRevTable(int reversed)**

  - **void TIFFReverseBits(u\_char \*data, unsigned long nbytes)**

  - **void TIFFSwabShort(uint16\_t \*data)**

  - **void TIFFSwabLong(uint32\_t \*data)**

  - **void TIFFSwabLong8(uint64\_t \*lp)**

  - **void TIFFSwabFloat(float \*fp)**

  - **void TIFFSwabDouble(double \*dp)**

  - **void TIFFSwabArrayOfShort(uint16\_t \*wp, tmsize\_t n)**

  - **void TIFFSwabArrayOfTriples(uint8\_t \*tp, tmsize\_t n)**

  - **void TIFFSwabArrayOfLong(uint32\_t \*lp, tmsize\_t n)**

  - **void TIFFSwabArrayOfLong8(uint64\_t \*lp, tmsize\_t n)**

  - **void TIFFSwabArrayOfFloat(float \*fp, tmsize\_t n)**

  - **void TIFFSwabArrayOfDouble(double \*dp, tmsize\_t n)**

  ## DESCRIPTION

The following routines are used by the library to swap 16-, 32- and 64-bit data and to reverse the order of bits in bytes.

*TIFFSwabShort()* and *TIFFSwabLong()* and *TIFFSwabFloat()* swap the bytes in a single 16- and 32-bit item, respectively.

*TIFFSwabLong8()* and *TIFFSwabDouble()* swap the bytes in a single 64-bit item.

*TIFFSwabArrayOfTriples()* swap the first and the third byte of each triple (three bytes) within the byte array. The second byte of each triple stays untouched.

*TIFFSwabArrayOfShort()* and  *TIFFSwabArrayOfLong()*, *TIFFSwabArrayOfFloat()* swap the bytes in an array of 16- and 32-bit items, respectively.

*TIFFSwabArrayOfLong8()* and *TIFFSwabArrayOfDouble()* swap the bytes in an array of 64-bit items.

*TIFFReverseBits()* replaces each byte in *data* with the equivalent bit-reversed value. This operation is performed with a lookup table, which is returned using the *TIFFGetBitRevTable()* function.  The *reversed* parameter specifies which table should be returned. Supply *1* if you want bit reversal table. Supply *0* to get the table that do not reverse bit values. It is a lookup table that can be used as an "identity function"; i.e. TIFFNoBitRevTable\[n\] == n.

## DIAGNOSTICS

None.

## SEE ALSO

*libtiff* (3tiff)

## AUTHOR

LibTIFF contributors

## COPYRIGHT

1988-2022, LibTIFF contributors
