添加主机字节序判断助手函数
parent
9a1f5494b3
commit
799629c5d2
|
@ -9,6 +9,11 @@
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
// 字节序选择
|
||||||
|
typedef enum{
|
||||||
|
BIG_ENDIAN, // 大端
|
||||||
|
LITTLE_ENDIAN // 小端
|
||||||
|
}BYTE_ORDER;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
ENV_WINDOWS = 1,
|
ENV_WINDOWS = 1,
|
||||||
|
@ -27,13 +32,17 @@ inline ENV_SYS CurrentEnvSys();
|
||||||
inline ENV_COMPILER CurrentEnvCompiler();
|
inline ENV_COMPILER CurrentEnvCompiler();
|
||||||
|
|
||||||
#define RELEASE_MEMORY(x) \
|
#define RELEASE_MEMORY(x) \
|
||||||
if(nullptr == x) \
|
do { \
|
||||||
{ \
|
if(nullptr == x) \
|
||||||
delete(x); \
|
{ \
|
||||||
x = nullptr;\
|
delete(x); \
|
||||||
}
|
x = nullptr;\
|
||||||
|
} \
|
||||||
|
}while(0)
|
||||||
|
|
||||||
string itos(int x);
|
string itos(int x);
|
||||||
|
|
||||||
|
BYTE_ORDER HostByteOrder();
|
||||||
|
|
||||||
// 限制float精确度
|
// 限制float精确度
|
||||||
float LimitFloat(float in,int size);
|
float LimitFloat(float in,int size);
|
||||||
|
|
|
@ -64,7 +64,7 @@ inline ENV_COMPILER CurrentEnvCompiler()
|
||||||
|
|
||||||
|
|
||||||
// 限制float有效位
|
// 限制float有效位
|
||||||
float LimitFloat(float in,int size){
|
float LimitFloat(float in,int size) {
|
||||||
uint64_t tmp = 1;
|
uint64_t tmp = 1;
|
||||||
for(int i = 0;i < size;i++){
|
for(int i = 0;i < size;i++){
|
||||||
tmp = tmp*10;
|
tmp = tmp*10;
|
||||||
|
@ -76,3 +76,14 @@ float LimitFloat(float in,int size){
|
||||||
|
|
||||||
return float(integer)/tmp;
|
return float(integer)/tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BYTE_ORDER HostByteOrder(){
|
||||||
|
short x = 0x1234;
|
||||||
|
uint8_t y = *((uint8_t*)(&x));
|
||||||
|
if(y == 0x34){
|
||||||
|
return BYTE_ORDER::LITTLE_ENDIAN;
|
||||||
|
}else{
|
||||||
|
return BYTE_ORDER::BIG_ENDIAN;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -31,7 +31,23 @@ float LimitFloat(float in,int size){
|
||||||
return float(integer)/tmp;
|
return float(integer)/tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
typedef enum{
|
||||||
|
BIG_ENDIAN = 1, // 大端
|
||||||
|
LITTLE_ENDIAN // 小端
|
||||||
|
}BYTE_ORDER;
|
||||||
|
|
||||||
|
BYTE_ORDER HostByteOrder(){
|
||||||
|
short x = 0x1234;
|
||||||
|
uint8_t y = *((uint8_t*)(&x));
|
||||||
|
if(y == 0x34){
|
||||||
|
return BYTE_ORDER::LITTLE_ENDIAN;
|
||||||
|
}else{
|
||||||
|
return BYTE_ORDER::BIG_ENDIAN;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int main(){
|
int main(){
|
||||||
|
std::cout<<"byteorder "<<HostByteOrder()<<std::endl;
|
||||||
std::cout<< LimitFloat(1.123,2)<<std::endl;
|
std::cout<< LimitFloat(1.123,2)<<std::endl;
|
||||||
std::cout<<LimitFloat(1.123,3) << std::endl;
|
std::cout<<LimitFloat(1.123,3) << std::endl;
|
||||||
std::cout<<LimitFloat(0.789,1) << std::endl;
|
std::cout<<LimitFloat(0.789,1) << std::endl;
|
||||||
|
|
Loading…
Reference in New Issue