1、字序
在幾乎所有的機器中,多位元組物件都被儲存為連續的位元組序列,物件的位址為所用位元組中最小的位址。
排列物件的中位元組有兩個通用規則:小端法(little endian)和大端法(big endian)。
小端法即最低有效位元組在最前面(低位址);大端法正好相反。
2、位序位欄位(bit-field),或簡稱字段,是「字」中相鄰位的集合。「字」(word)是單個的儲存單元,它同具體的實現有關。欄位的所有屬性幾乎都同具體的實現有關。字段是否能覆蓋自邊界由具體的實現定義。字段可以不命名,無名字段(只有乙個冒號和寬度)起填充作用。特殊寬度0可以用來強制在下乙個字邊界上對齊(長度為0的位域是給編譯器的乙個訊號,告訴編譯器將下乙個位域在乙個儲存單元的起始位置對齊)。某些機器上字段的分配是從字的左端至右端進行的,而某些機器上則相反(移植需要考慮這方面的問題)。字段不是陣列,並且沒有位址,因此對它們不能使用&運算子。
位域位元組序必須注意:不論大端序或小端序cpu,多位元組位域都是從儲存器的低位元組開始儲存;在小端序cpu中,在乙個位元組中,從低位開始儲存;在大端序cpu中,在乙個位元組中,從高位開始儲存。
}大小端中位序的情況
#include // opaque and show
#define yes 1
#define no 0
// line styles
#define solid 1
#define dotted 2
#define dashed 3
// primary colors
#define blue 4 /* 100 */
#define green 2 /* 010 */
#define red 1 /* 001 */
// mixed colors
#define black 0 /* 000 */
#define yellow (red | green) /* 011 */
#define magenta (red | blue) /* 101 */
#define cyan (green | blue) /* 110 */
#define white (red | green | blue) /* 111 */
const char * colors[8] = ;
// bit field box properties
struct box_props
;
/* each prepocessor directive defines a single bit */
#define key_up (1 << 0) /* 000001 */
#define key_right (1 << 1) /* 000010 */
#define key_down (1 << 2) /* 000100 */
#define key_left (1 << 3) /* 001000 */
#define key_button1 (1 << 4) /* 010000 */
#define key_button2 (1 << 5) /* 100000 */
int gamecontrollerstatus = 0;
/* sets the gamecontrollerstatus using or */
void keypressed(int key)
/* turns the key in gamecontrollerstatus off using and and ~ (binary not)*/
void keyreleased(int key)
/* tests whether a bit is set using and */
int ispressed(int key)
大端序與小端序 位元組序與位域的儲存
談到位元組序的問題,必然牽涉到兩大cpu派系 motorola的powerpc系列cpu和intel的x86系列cpu。powerpc系列採用big endian 大端序 大字節序 高位元組序 方式儲存資料,而x86系列則採用little endian 小端序 小字節序 低位元組序 方式儲存資料。何...
大端序與小端序
簡單點說,就是位元組的儲存順序,如果資料都是單位元組的,那怎麼儲存無所謂了,但是對於多位元組資料,比如int,double等,就要考慮儲存的順序了。注意位元組序是硬體層面的東西,對於軟體來說通常是透明的。再說白一點,位元組序通常只和你使用的處理器架構有關,而和程式語言無關,比如常見的intel x8...
大端序與小端序
簡單點說,就是位元組的儲存順序,如果資料都是單位元組的,那怎麼儲存無所謂了,但是對於多位元組資料,比如int,double等,就要考慮儲存的順序 了。注意位元組序是硬體層面的東西,對於軟體來說通常是透明的。再說白一點,位元組序通常只和你使用的處理器架構有關,而和程式語言無關,比如常見的 intel ...