awtk/docs/manual/endian_t.md
2023-09-28 08:16:16 +08:00

9.0 KiB
Raw Blame History

endian_t

概述

字节顺序转换相关函数。

示例

uint16_t a = 0x1234;
ENSURE(is_little_endian());
ENSURE(int16_endian_invert(a) == 0x3412);
ENSURE(int16_from_big_endian(a) == 0x3412);
ENSURE(int16_to_big_endian(a) == 0x3412);

int32_t b = 0x12345678;
ENSURE(int32_endian_invert(b) == 0x78563412);
ENSURE(int32_from_big_endian(b) == 0x78563412);
ENSURE(int32_to_big_endian(b) == 0x78563412);

int64_t c = 0x1234567890ABCDEF;
ENSURE(int64_endian_invert(c) == 0xEFCDAB9078563412);
ENSURE(int64_from_big_endian(c) == 0xEFCDAB9078563412);
ENSURE(int64_to_big_endian(c) == 0xEFCDAB9078563412);

float f1 = 1.23;
float f2 = float_endian_invert(f1);
ENSURE(float_from_big_endian(f2) == f1);
float f3 = float_from_big_endian(f2);
ENSURE(float_to_big_endian(f3) == f2);

double d1 = 1.2345678;
double d2 = double_endian_invert(d1);
ENSURE(double_from_big_endian(d2) == d1);
double d3 = double_from_big_endian(d2);
ENSURE(double_to_big_endian(d3) == d2);

函数

函数名称 说明
double_endian_invert double浮点数大小端模式转换。
double_from_big_endian double浮点数转换为小端模式。
double_to_big_endian double浮点数转换为大端模式。
float_endian_invert float浮点数大小端模式转换。
float_from_big_endian float浮点数转换为小端模式。
float_to_big_endian float浮点数转换为大端模式。
int16_endian_invert 16 整数大小端模式转换。
int16_from_big_endian 16 整数转换为小端模式。
int16_to_big_endian 16 整数转换为大端模式。
int32_endian_invert 32 整数大小端模式转换。
int32_from_big_endian 32 整数转换为小端模式。
int32_to_big_endian 32 整数转换为大端模式。
int64_endian_invert 64 整数大小端模式转换。
int64_from_big_endian 64 整数转换为小端模式。
int64_to_big_endian 64 整数转换为大端模式。
is_little_endian 检查当前系统是否是小端模式。

double_endian_invert 函数


  • 函数功能:

double浮点数大小端模式转换。

  • 函数原型:
double double_endian_invert (double value);
  • 参数说明:
参数 类型 说明
返回值 double 返回转换后的数据。
value double 输入数据。

double_from_big_endian 函数


  • 函数功能:

double浮点数转换为小端模式。

  • 函数原型:
double double_from_big_endian (double value);
  • 参数说明:
参数 类型 说明
返回值 double 返回转换后的数据。
value double 输入数据。

double_to_big_endian 函数


  • 函数功能:

double浮点数转换为大端模式。

  • 函数原型:
double double_to_big_endian (double value);
  • 参数说明:
参数 类型 说明
返回值 double 返回转换后的数据。
value double 输入数据。

float_endian_invert 函数


  • 函数功能:

float浮点数大小端模式转换。

  • 函数原型:
float float_endian_invert (float value);
  • 参数说明:
参数 类型 说明
返回值 float 返回转换后的数据。
value float 输入数据。

float_from_big_endian 函数


  • 函数功能:

float浮点数转换为小端模式。

  • 函数原型:
float float_from_big_endian (float value);
  • 参数说明:
参数 类型 说明
返回值 float 返回转换后的数据。
value float 输入数据。

float_to_big_endian 函数


  • 函数功能:

float浮点数转换为大端模式。

  • 函数原型:
float float_to_big_endian (float value);
  • 参数说明:
参数 类型 说明
返回值 float 返回转换后的数据。
value float 输入数据。

int16_endian_invert 函数


  • 函数功能:

16 整数大小端模式转换。

  • 函数原型:
int16_t int16_endian_invert (int16_t value);
  • 参数说明:
参数 类型 说明
返回值 int16_t 返回转换后的数据。
value int16_t 输入数据。

int16_from_big_endian 函数


  • 函数功能:

16 整数转换为小端模式。

  • 函数原型:
int16_t int16_from_big_endian (int16_t value);
  • 参数说明:
参数 类型 说明
返回值 int16_t 返回转换后的数据。
value int16_t 输入数据。

int16_to_big_endian 函数


  • 函数功能:

16 整数转换为大端模式。

  • 函数原型:
int16_t int16_to_big_endian (int16_t value);
  • 参数说明:
参数 类型 说明
返回值 int16_t 返回转换后的数据。
value int16_t 输入数据。

int32_endian_invert 函数


  • 函数功能:

32 整数大小端模式转换。

  • 函数原型:
int32_t int32_endian_invert (int32_t value);
  • 参数说明:
参数 类型 说明
返回值 int32_t 返回转换后的数据。
value int32_t 输入数据。

int32_from_big_endian 函数


  • 函数功能:

32 整数转换为小端模式。

  • 函数原型:
int32_t int32_from_big_endian (int32_t value);
  • 参数说明:
参数 类型 说明
返回值 int32_t 返回转换后的数据。
value int32_t 输入数据。

int32_to_big_endian 函数


  • 函数功能:

32 整数转换为大端模式。

  • 函数原型:
int32_t int32_to_big_endian (int32_t value);
  • 参数说明:
参数 类型 说明
返回值 int32_t 返回转换后的数据。
value int32_t 输入数据。

int64_endian_invert 函数


  • 函数功能:

64 整数大小端模式转换。

  • 函数原型:
int64_t int64_endian_invert (int64_t value);
  • 参数说明:
参数 类型 说明
返回值 int64_t 返回转换后的数据。
value int64_t 输入数据。

int64_from_big_endian 函数


  • 函数功能:

64 整数转换为小端模式。

  • 函数原型:
int64_t int64_from_big_endian (int64_t value);
  • 参数说明:
参数 类型 说明
返回值 int64_t 返回转换后的数据。
value int64_t 输入数据。

int64_to_big_endian 函数


  • 函数功能:

64 整数转换为大端模式。

  • 函数原型:
int64_t int64_to_big_endian (int64_t value);
  • 参数说明:
参数 类型 说明
返回值 int64_t 返回转换后的数据。
value int64_t 输入数据。

is_little_endian 函数


  • 函数功能:

检查当前系统是否是小端模式。

  • 函数原型:
bool_t is_little_endian ();
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回TRUE表示是否则表示不是。