大小端

long, unsigned long不是跨平台的(慎用)

风格不统一 提交于 2019-12-07 20:46:53
项目中用到long、long long等字段,遇到一些问题。先说得到的一些结论: 大小端:Windows、Linux是小端,AIX是大端。 sizeof(指针类型)=程序位数/8。 long、unsigned long不是跨平台的,一定要慎用。 自己写了程序测试各平台下(Windows、Linux、AIX),C++各基本类型的最大值、最小值,以及占用字节数。 #include <iostream> #include <limits.h> using namespace std; void checkEndian(); int main() { checkEndian(); cout<<"程序位数="<<sizeof(void*)*8<<endl; cout<<endl<<"各种数据类型:"<<endl; cout<<"sizeof(char)="<<sizeof(char)<<endl; cout<<"sizeof(int)="<<sizeof(int)<<endl; cout<<"sizeof(unsigned int)="<<sizeof(unsigned int)<<endl; cout<<"sizeof(short)="<<sizeof(short)<<endl; cout<<"sizeof(long)="<<sizeof(long)<<endl; cout<<

字节序和大小端

心已入冬 提交于 2019-12-06 19:32:19
<div class="Section0"> <h2>1. 字节顺序</h2> <p class="p0"><strong>字节顺序(Endian) </strong></p> <p class="p0">字节序是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序。</p> <p class="p0">  计算机系统一般采用字节<span style="font-family: 'Times New Roman'">(Byte</span>(8 bit ))<span style="font-family: 宋体">作为逻辑寻址单位。当物理单位的长度大于</span><span style="font-family: 'Times New Roman'">1</span><span style="font-family: 宋体">个字节时,就要区分字节顺序</span><span style="font-family: 'Times New Roman'">(Byte Order</span>)<span style="font-family: 宋体">。常见的字节顺序有两种:</span><span style="font-family: 'Times New Roman'">Big Endian(High-byte first)</span><span style=