---
name: "be16dec"
section: "9"
platform: "linux"
package: "freebsd-manpages"
version: "6.0-5"
release: "Debian 4.0 (Etch)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/be16dec/9"
---

# be16dec(9)

byte order operations

## NAME

**bswap16**, **bswap32**, **bswap64**, **be16toh**, **be32toh**, **be64toh**, **htobe16**, **htobe32**, **htobe64**, **htole16**, **htole32**, **htole64**, **le16toh**, **le32toh**, **le64toh**, **be16enc**, **be16dec**, **be32enc**, **be32dec**, **be64enc**, **be64dec**, **le16enc**, **le16dec**, **le32enc**, **le32dec**, **le64enc**, **le64dec** – byte order operations

## SYNOPSIS

**#include \<sys/endian.h\>**

*uint16\_t*\

**bswap16**(*uint16\_t int16*);

*uint32\_t*\

**bswap32**(*uint32\_t int32*);

*uint64\_t*\

**bswap64**(*uint64\_t int64*);

*uint16\_t*\

**be16toh**(*uint16\_t big16*);

*uint32\_t*\

**be32toh**(*uint32\_t big32*);

*uint64\_t*\

**be64toh**(*uint64\_t big64*);

*uint16\_t*\

**htobe16**(*uint16\_t host16*);

*uint32\_t*\

**htobe32**(*uint32\_t host32*);

*uint64\_t*\

**htobe64**(*uint64\_t host64*);

*uint16\_t*\

**htole16**(*uint16\_t host16*);

*uint32\_t*\

**htole32**(*uint32\_t host32*);

*uint64\_t*\

**htole64**(*uint64\_t host64*);

*uint16\_t*\

**le16toh**(*uint16\_t little16*);

*uint32\_t*\

**le32toh**(*uint32\_t little32*);

*uint64\_t*\

**le64toh**(*uint64\_t little64*);

*uint16\_t*\

**be16dec**(*const void \**);

*uint32\_t*\

**be32dec**(*const void \**);

*uint64\_t*\

**be64dec**(*const void \**);

*uint16\_t*\

**le16dec**(*const void \**);

*uint32\_t*\

**le32dec**(*const void \**);

*uint64\_t*\

**le64dec**(*const void \**);

*void*\

**be16enc**(*void \**, *uint16\_t*);

*void*\

**be32enc**(*void \**, *uint32\_t*);

*void*\

**be64enc**(*void \**, *uint64\_t*);

*void*\

**le16enc**(*void \**, *uint16\_t*);

*void*\

**le32enc**(*void \**, *uint32\_t*);

*void*\

**le64enc**(*void \**, *uint64\_t*);

## DESCRIPTION

The **bswap16**(), **bswap32**(), and **bswap64**() functions return a byte order swapped integer. On big endian systems, the number is converted to little endian byte order. On little endian systems, the number is converted to big endian byte order.

The **be16toh**(), **be32toh**(), and **be64toh**() functions return a big endian byte ordered integer converted to the system's native byte order. The return value will be the same as the argument on big endian systems.

The **le16toh**(), **le32toh**(), and **le64toh**() functions return a little endian byte ordered integer converted to the system's native byte order. The return value will be the same as the argument on little endian systems.

The **htobe16**(), **htobe32**(), and **htobe64**() functions return a integer in the system's native byte order converted to big endian byte order. The return value will be the same as the argument on big endian systems.

The **htole16**(), **htole32**(), and **htole64**() functions return a integer in the system's native byte order converted to little endian byte order. The return value will be the same as the argument on little endian systems.

The **be16enc**(), **be16dec**(), **be32enc**(), **be32dec**(), **be64enc**(), **be64dec**(), **le16enc**(), **le16dec**(), **le32enc**(), **le32dec**(), **le64enc**(), and **le64dec**() functions encode and decode integers to/from byte strings on any alignment in big/little endian format.

## SEE ALSO

[byteorder(3)](/byteorder/3.md)

## HISTORY

The **hto\***() and **toh\***() functions first appeared in FreeBSD 5.0, and were originally developed by the NetBSD project.

The encode/decode functions first appeared in FreeBSD 5.1.
