#include "../tmain.hpp"
void test_ByteOrderFilp()
{
{
Poco::Int16 norm = (Poco::Int16) 0xAABB;
Poco::Int16 filp = Poco::ByteOrder::flipBytes(norm);
assert(Poco::UInt16(filp) == 0xBBAA);
filp = Poco::ByteOrder::flipBytes(filp);
assert(filp == norm);
}
{
Poco::UInt16 norm = (Poco::UInt16) 0xAABB;
Poco::UInt16 flip = Poco::ByteOrder::flipBytes(norm);
assert (flip == 0xBBAA);
flip = Poco::ByteOrder::flipBytes(flip);
assert (flip == norm);
}
{
Poco::Int32 norm = 0xAABBCCDD;
Poco::Int32 flip = Poco::ByteOrder::flipBytes(norm);
assert (Poco::UInt32(flip) == 0xDDCCBBAA);
flip = Poco::ByteOrder::flipBytes(flip);
assert (flip == norm);
}
{
Poco::UInt32 norm = 0xAABBCCDD;
Poco::UInt32 flip = Poco::ByteOrder::flipBytes(norm);
assert (flip == 0xDDCCBBAA);
flip = Poco::ByteOrder::flipBytes(flip);
assert (flip == norm);
}
}
void test_ByteOrderNetwork()
{
// 小端系统中...
#if defined(POCO_ARCH_LITTLE_ENDIAN)
{
Poco::Int16 norm = 4;
Poco::Int16 flip = Poco::ByteOrder::toNetwork(norm);
assert (norm != flip);
flip = Poco::ByteOrder::flipBytes(flip);
assert (norm == flip);
}
{
Poco::UInt16 norm = 4;
Poco::UInt16 flip = Poco::ByteOrder::toNetwork(norm);
assert (norm != flip);
flip = Poco::ByteOrder::flipBytes(flip);
assert (norm == flip);
}
{
Poco::Int32 norm = 4;
Poco::Int32 flip = Poco::ByteOrder::toNetwork(norm);
assert (norm != flip);
flip = Poco::ByteOrder::flipBytes(flip);
assert (norm == flip);
}
{
Poco::UInt32 norm = 4;
Poco::UInt32 flip = Poco::ByteOrder::toNetwork(norm);
assert (norm != flip);
flip = Poco::ByteOrder::flipBytes(flip);
assert (norm == flip);
}
//
{
Poco::Int16 norm = 4;
Poco::Int16 flip = Poco::ByteOrder::fromNetwork(norm);
assert (norm != flip);
flip = Poco::ByteOrder::flipBytes(flip);
assert (norm == flip);
}
{
Poco::UInt16 norm = 4;
Poco::UInt16 flip = Poco::ByteOrder::fromNetwork(norm);
assert (norm != flip);
flip = Poco::ByteOrder::flipBytes(flip);
assert (norm == flip);
}
{
Poco::Int32 norm = 4;
Poco::Int32 flip = Poco::ByteOrder::fromNetwork(norm);
assert (norm != flip);
flip = Poco::ByteOrder::flipBytes(flip);
assert (norm == flip);
}
{
Poco::UInt32 norm = 4;
Poco::UInt32 flip = Poco::ByteOrder::fromNetwork(norm);
assert (norm != flip);
flip = Poco::ByteOrder::flipBytes(flip);
assert (norm == flip);
}
#endif
};
【Poco】Poco::BypeOrder的例子
最新推荐文章于 2024-02-07 13:39:19 发布