コード例 #1
0
ファイル: flvmerger.c プロジェクト: lawishere/flvmerger
static void flv_put_double(double d,FILE * flv)
{
	//把 double 的位置按照大端就可以了
	uint64_t * t = (uint64_t*)&d;

	uint64_t n = __bswap_64(*t);

	fwrite(&n,8,1,flv);
}
コード例 #2
0
ファイル: tc_pack.cpp プロジェクト: daliniu/mobile
TC_PackIn::TC_PackInInner& TC_PackIn::TC_PackInInner::operator << (long long t)
{
    #if __BYTE_ORDER == __LITTLE_ENDIAN
    t = __bswap_64(t);
    #endif

    _buffer.append((const char *)&t, sizeof(long long));
    return *this;
}
コード例 #3
0
ファイル: check_endian.c プロジェクト: shawnfeng/code_tst
uint64_t little_endian_chg64(uint64_t n)
{
#if BYTE_ORDER == BIG_ENDIAN
	return __bswap_64(n);
#elif BYTE_ORDER == LITTLE_ENDIAN
	return n;
#else
# error "What kind of system is this?"
#endif
}
コード例 #4
0
ファイル: tc_pack.cpp プロジェクト: daliniu/mobile
TC_PackIn::TC_PackInInner& TC_PackIn::TC_PackInInner::operator << (unsigned long t)
{
    if(sizeof(unsigned long) == 8)
    {
        #if __BYTE_ORDER == __LITTLE_ENDIAN
        t = __bswap_64(t);
        #endif
    }
    else
    {
        t = htonl(t);
    }

    _buffer.append((const char *)&t, sizeof(unsigned long));
    return *this;
}
コード例 #5
0
ファイル: buffer.c プロジェクト: liyu1981/postgresql-r-hack
uint64_t
get_int64(buffer *b)
{
	uint64_t res;

	Assert(b->ptr + sizeof(uint64_t) <= b->fill_size);
	res = *((uint64_t*) BUFFER_POS(b));
	b->ptr += sizeof(uint64_t);
	
#if __BYTE_ORDER == __LITTLE_ENDIAN
	return __bswap_64(res);
#elif __BYTE_ORDER == __BIG_ENDIAN
	return res;
#else
#error __BYTE_ORDER not specified!
#endif
}
コード例 #6
0
ファイル: ns.c プロジェクト: rendau/rose
int64_t
ns_csi64(int64_t n) {
  if(ns_isne())
    return n;
  return __bswap_64(n);
}
コード例 #7
0
ファイル: OW_ByteSwap.hpp プロジェクト: kkaempf/openwbem
inline UInt64 ntoh64(UInt64 v) { return __bswap_64(v); }
コード例 #8
0
ファイル: OW_ByteSwap.hpp プロジェクト: kkaempf/openwbem
inline UInt64 hton64(UInt64 v) { return __bswap_64(v); }
コード例 #9
0
ファイル: log.c プロジェクト: DINKIN/tuo
static uint64_t ntohll(uint64_t x)
{
	return __bswap_64(x);
}
コード例 #10
0
uint64_t test_bswap64 ( uint64_t x ) {
	return __bswap_64 ( x );
}
コード例 #11
0
ファイル: check_endian.c プロジェクト: shawnfeng/code_tst
int main()
{
	printf("%d\n", check_cpu_endian());
	printf("%d\n", check_cpu_endian2());
	printf("%d\n", check_cpu_endian3());
	printf("%d\n", is_bigendian());
	

	printf("sizeof(short int)=%lu\n", sizeof(short int));
	printf("sizeof(int)=%lu\n", sizeof(int));
	printf("sizeof(long int)=%lu\n", sizeof(long int));
	printf("sizeof(long long int)=%lu\n", sizeof(long long int));

	printf("~0=0x%X\n", (uint8_t)~0);
	printf("~0 << 8=0x%X\n", (uint8_t)~0 << 8);
	printf("~0 << 56=0x%lX\n", (uint64_t)((uint8_t)~0) << 56);

	int aa = -3;
	unsigned int bb = aa;
	int cc = bb;
	printf("int %d; uint %u int %d\n", aa, bb, cc);
	/*
	uint32_t dd = UINT32_MAX;
	int32_t ee = dd;
	printf("uintmax %u int %d\n", dd, ee);
	*/

	puts("32-------------------");
	int n1 = 0x12345678;
	unsigned char* pc = (unsigned char*)(&n1);
	printf("cpu order:\n");
	print_endian(pc, 32);

	n1 = htonl(n1);
	printf("htonl order:\n");
	print_endian(pc, 32);

	n1 = BigLittleSwap32(n1);
	printf("BigLittleSwap32 order:\n");
	print_endian(pc, 32);

	puts("64-------------------");

	uint64_t n2 = 0x1A2B3C4D12345678;
	pc = (unsigned char*)(&n2);
	printf("cpu order:\n");
	print_endian(pc, 64);

	n2 = BigLittleSwap64(n2);
	printf("BigLittleSwap64 order:\n");
	print_endian(pc, 64);

	n2 = __bswap_64(n2);
	printf("__bswap_64 order:\n");
	print_endian(pc, 64);

	n2 = LITTLE_ENDIAN_CHANGE(n2, 64);
	printf("LITTLE_ENDIAN_CHANGE64 order:\n");
	print_endian(pc, 64);

	n2 = BIG_ENDIAN_CHANGE(n2, 64);
	printf("BIG_ENDIAN_CHANGE64 order:\n");
	print_endian(pc, 64);


	puts("16-------------------");

	uint16_t n3 = 0x1234;
	pc = (unsigned char*)(&n3);
	printf("cpu order:\n");
	print_endian(pc, 16);

	n3 = BigLittleSwap16(n3);
	printf("BigLittleSwap16 order:\n");
	print_endian(pc, 16);


	n3 = little_endian_chg16(n3);
	printf("little_endian_chg16 order:\n");
	print_endian(pc, 16);

	n3 = LITTLE_ENDIAN_CHANGE(n3, 16);
	printf("LITTLE_ENDIAN_CHANGE16 order:\n");
	print_endian(pc, 16);

	n3 = BIG_ENDIAN_CHANGE(n3, 16);
	printf("BIG_ENDIAN_CHANGE16 order:\n");
	print_endian(pc, 16);


	n3 = stream_ltt_bit16(pc, 16);
	printf("stream_ltt_bit16 order:\n");
	print_endian(pc, 16);

	n3 = stream_big_bit16(pc, 16);
	printf("stream_big_bit16 order:\n");
	print_endian(pc, 16);

	puts("16-------------------");
	uint16_t tn = 0x1234;
	print_endian((unsigned char*)(&tn), 16);

	uint64_t n4 = stream_ltt_bit64((unsigned char*)(&tn), 16);
	pc = (unsigned char*)(&n4);
	printf("stream_ltt_bit64 order:\n");
	print_endian(pc, 64);


	n4 = stream_big_bit64((unsigned char*)(&tn), 16);
	pc = (unsigned char*)(&n4);
	printf("stream_big_bit64 order:\n");
	print_endian(pc, 64);


	puts("32-------------------");	
	char buff[4] = {'\x12', '\x34', '\x56', '\x78'};
	print_endian((unsigned char *)buff, 32);
	const char *p = buff;
	printf("p=%p\n", p);
	int m0 = stream_ltt_bit32(&p, 4);
	printf("p=%p m=0x%X\n", p, m0);

	char buff2[4];
	char *p2 = buff2;
	printf("p=%p\n", p2);
	p2 = bit32_ltt_stream(m0, p2, 4);
	print_endian((unsigned char *)buff2, 32);
	printf("p=%p\n", p2);
	


	return 0;

}
コード例 #12
0
ファイル: ws.c プロジェクト: odmanV2/freecenter
uint64_t ntoh64(uint64_t val)
{
	if (__BYTE_ORDER == __BIG_ENDIAN) return (val);
	else return __bswap_64(val);
}