C语言中的高位字节和低位字节是什么意思? C语言中的高位字节和低位字节是什么意思
C\u8bed\u8a00\u4e2d \t \u662f\u4ec0\u4e48\u610f\u601d\u554a\uff0c\u5360\u51e0\u4e2a\u5b57\u8282\u6570\u5462\uff1f\t\u662fC\u8bed\u8a00\u4e2d\u7684\u4e00\u4e2a\u8f6c\u4e49\u5b57\u7b26\uff0c\u8868\u793a\u6c34\u5e73\u5236\u8868\u7b26\uff08\u5373\u952e\u76d8\u4e2dtap\u952e\u7684\u529f\u80fd\uff09\u3002
\u8f6c\u4e49\u5b57\u7b26\u662fC\u8bed\u8a00\u4e2d\u8868\u793a\u5b57\u7b26\u7684\u4e00\u79cd\u7279\u6b8a\u5f62\u5f0f\u3002\u901a\u5e38\u4f7f\u7528\u8f6c\u4e49\u5b57\u7b26\u8868\u793aASCII\u7801\u5b57\u7b26\u96c6\u4e2d\u4e0d\u53ef\u6253\u5370\u7684\u63a7\u5236\u5b57\u7b26\u548c\u7279\u5b9a\u529f\u80fd\u7684\u5b57\u7b26\u3002
\u5728C\u7a0b\u5e8f\u4e2d\uff0c\u7531\u4e8e\u8f6c\u4e49\u5b57\u7b26\u53ea\u80fd\u770b\u4f5c\u4e00\u4e2a\u5b57\u7b26\uff0c\u56e0\u6b64\u8f6c\u4e49\u5b57\u7b26\u5360\u7528\u4e00\u4e2a\u5b57\u8282\u3002
\u6240\u8c13\u7684\u9ad8\u4f4d\u5b57\u8282\u548c\u4f4e\u4f4d\u5b57\u8282\u662f\u76f8\u5bf9\u4e8e\u5730\u5740\u800c\u8a00\u7684\uff0c\u5728\u5185\u5b58\u4e2d\uff0c\u5730\u5740\u662f\u6309\u5b57\u8282\u7f16\u7801\u7684\uff0c\u5373\u4e00\u4e2a\u5b57\u8282\u7f16\u4e00\u4e2a\u5730\u5740\uff0c\u8fd9\u4e2a\u5730\u5740\u5c31\u662f\u8fd9\u4e2a\u5b57\u8282\u7684\u7f16\u53f7\u3002\u9ad8\u4f4d\u5b57\u8282\u5c31\u662f\u9ad8\u5730\u5740\u5b57\u8282\uff0c\u4f4e\u4f4d\u5b57\u8282\u5c31\u662f\u4f4e\u5730\u5740\u5b57\u8282\u3002
比如:一个字节=8bit计算机中用16表示一个数,比如0001 0001 1001 0001 ; 0001 0001就为高字节,1001 0001为低字节。0001 0001 1001 0001B(或者1191H)11H 91H说通俗点,就是把一个数用编码表示出来(一般十六进制或二进制),左边的一半数为高,右边一半数为低。
通常我们从最高有效位(most significant digit)开始自左向右书写一个数字。在理解有效位这个概念时,可以想象一下你的支票数额的第一位增加1和最后一位增加1之间的巨大区别,前者肯定会让你喜出望外。
计算机内存中一个字节的位相当于二进制数的位,这意味着最低有效位表示1,倒数第二个有效位表示2×1或2,倒数第三个有效位表示2×2×1或4,依此类推。如果用内存中的两个字节表示一个16位的数,那么其中的一个字节将存放最低的8位有效位,而另一个字节将存放最高的8位有效位,见图10.5。存放最低的8位有效位的字节被称为最低有效位字节或低位字节,而存放最高的8位有效位的字节被称为最高有效位字节或高位字节。
高位字节 低位字节
↓--------------------------↓ ↓---------------------------↓
15 14 13 12 11 10 9. 8. 7. 6. 5. 4. 3. 2. 1. 0.
图 10.5 双字节整数中的位
绛旓細楂4浣浣4浣嶏紝璇寸殑灏辨槸涓涓瀛楄妭 濡傦細 1111 0000 锛堜簩杩涘埗锛夎繖鏄竴涓瓧鑺傦紝鍦ㄥ崟鐗囨満缂栫▼涓粡甯镐娇鐢16杩涘埗锛屽洜姝ゅ父甯稿瀵勫瓨鍣ㄧ殑閰嶇疆浣跨敤 鎶婅繖绉2杩涘埗鍖栦负16杩涘埗 鍙樹负 0xf0 (0x鏄C璇█涓瑙勫畾鐨16杩涘埗鐨勭敵鏄庯級鍏朵腑f灏辨槸楂4浣嶏紝0灏辨槸浣庡洓浣嶃傘佺疮鍔犲櫒鍜屽瘎瀛樺櫒绛夊嚑閮ㄥ垎缁勬垚銆侫LU鐨勪綔鐢ㄦ槸鎶婁紶鏉ョ殑...
绛旓細楂樺叓浣鍜屼綆鍏綅锛氬唴瀛橀噷锛屼竴涓崟鍏冩槸涓涓瀛楄妭锛屼篃灏辨槸8浣嶃傚鏋滄槸16浣嶇殑鎸囦护锛屽氨鏄悓鏃舵搷浣滆繛缁殑2涓唴瀛樺湴鍧锛屽皢杩欒繛缁殑2涓唴瀛樺湴鍧褰撴垚涓涓崟浣嶏紝鎵浠ュ氨鏈夐珮8浣嶅拰浣8浣嶄箣鍒嗐傜敱浜庤绠楁満浠呰瘑鍒簩杩涘埗鎻忚堪鐨勬暟瀛楋紝鎵浠ュ涓涓唴瀛樺湴鍧锛屼篃灏辨槸8浣嶄簩杩涘埗锛屽锛0000 0001锛0000灏辨槸楂樺洓浣嶏紝0001灏...
绛旓細涓鑸槸鍗2涓瓧鑺傜殑鍙珮瀛楄妭鍜屼綆瀛楄妭 涓句釜渚嬪瓙 涓鑸殑IO璁惧閮芥槸1涓瓧鑺傚,濡傛灉浼4涓瓧鑺傜殑鏁存暟灏辫鎶婂畠鎷嗘垚4涓瓧鑺 杩欐椂灏辩敤鍒颁簡 杩樻湁瑕佹敞鎰忕殑鏄 澶у皬绔棶棰,鍐呭瓨閮芥槸1涓瓧鑺傚 瀛4瀛楄妭鏁版嵁鏃舵槸浠庨珮鍒颁綆杩樻槸浠庡簳鍒伴珮鐨勯棶棰 PC鏄粠浣庡埌楂,濡傛灉0x1234鍦ㄥ唴瀛樹腑瀛樻垚2瀛楄妭 鍒嗗埆鏄 0x34 0x12 ...
绛旓細鍦ㄤ綆浣嶄紭鍏堢殑璁$畻鏈轰笂锛屽瓧鑺備腑鐨勫唴瀹瑰涓嬫墍绀猴細 鍦板潃3003H 3002H 3001H 3000H 2FFFH 2FFEH 鍊01H 02H 杩欑鍥剧ず鏂瑰紡鍚屾牱寰堢洿瑙傗斺斾綆浣嶅瓧鑺傚瓨鏀惧湪浣庡湴鍧涓 涓嶅垢鐨勬槸锛屾湁浜涜绠楁満閲囩敤楂樹綅浼樺厛鐨勫瓨鍌ㄦ柟寮忥紝鑰屽彟涓浜涜绠楁満鍗撮噰鐢ㄤ綆浣嶄紭鍏堢殑瀛樺偍鏂瑰紡銆備緥濡傦紝IBM鍏煎鏈哄拰Macintosh鏈哄楂樹綅瀛楄妭鍜屼綆浣嶅瓧鑺鐨...
绛旓細 浣庝綅瀛愯妭 ---> 楂樹綅瀛愯妭 • Big-Endian锛楂樹綅瀛楄妭鎺掓斁鍦ㄥ唴瀛樼殑浣庡湴鍧绔紝浣庝綅瀛楄妭鎺掓斁鍦ㄥ唴瀛樼殑楂樺湴鍧绔傜ず渚嬫暟瀛0x12 34 56 78鍦ㄥ唴瀛樹腑鐨勮〃绀哄舰寮忥細 鍐呭瓨 浣庡湴鍧 ---> 楂樺湴鍧 0x12 | 0x34 | 0x56 | 0x78 ...
绛旓細濡傦細涓涓暟0x12345678瀛樻斁鍦ㄤ竴涓4瀛楄妭绌洪棿閲 灏忕锛堝瓨鍌級妯″紡锛**鏄寚涓涓暟鎹鐨勪綆浣嶅瓧鑺搴忓唴瀹瑰瓨鏀惧湪浣庡湴鍧澶勶紝楂樹綅瀛楄妭搴忕殑鍐呭瀛樻斁鍦ㄩ珮鍦板潃澶勩傦紙鍙互鎬荤粨涓衡滃皬灏忓皬鈥濆嵆浣庝綅銆佷綆鍦板潃銆佸皬绔級濡傦細涓涓暟0x12345678瀛樻斁鍦ㄤ竴涓4瀛楄妭绌洪棿閲 鍦ㄨ绠楁満绯荤粺涓紝鎴戜滑鏄互瀛楄妭...
绛旓細00 00 00 娉ㄦ剰:鍦0x0000 0013 涓 楂樹綅瀛楄妭鏄0x00,鑰浣庝綅瀛楄妭鏄0x13 缁堜笂鎵杩 濡傛灉妤间富鐨勮绠楁満鏄互澶х娉曟帓鍒楁暟鎹殑璇 printf("%d\n",a.i)锛涘皢杈撳嚭0 濡傛灉鏄皬绔硶鐨勮瘽 printf("%d\n",a.i)锛涘皢杈撳嚭13 鑻ユゼ涓绘湁涓嶆槑鐧界殑鍦版柟锛屽彲浠ヨ拷闂 ...
绛旓細灏忕搴忥紙LittleEndian锛夛細涓庢鐩稿弽锛屽皬绔簭鏄皢鏁版嵁鐨勯珮浣嶅瓧鑺瀛樺偍鍦ㄥ唴瀛樼殑鏈楂樹綅锛浣庝綅瀛楄妭瀛樺偍鍦ㄦ渶浣庝綅銆傚浜庢暣鏁12345锛屽叾瀛樺偍椤哄簭涓猴細5锛堥珮浣嶏級銆4锛堟楂樹綅锛夈3锛堝啀娆¢珮浣嶏級銆2锛堜綆浣嶏級銆1锛堟洿浣庝綅锛夈傚瓧鑺傚簭闂涓嶤PU銆佺紪绋璇█鍜缃戠粶鐜绛夌浉鍏炽備笉鍚岀殑CPU鏋舵瀯瀵瑰瓧鑺傚簭鐨勫鐞嗘柟寮忔湁鎵涓嶅悓锛屽...
绛旓細瀛楁槸涓や釜瀛楄妭锛屼篃灏辨槸16涓浂鎴栦竴缁勬垚鐨勶紝渚嬪0000 0000 0000 0000锛岃繖鍗佸叚涓綅缃腑鍓嶅叓涓氨鏄楂樹綅锛屽悗鍏釜鏄浣庝綅銆傚唴瀛樻槸鎸夊瓧鑺傚瓨鏀剧殑锛岃屽悗闈㈠叓涓浂浼氭斁鍦ㄧ墿鐞嗗湴鍧x鐨勪綅缃笂锛岃屽墠闈㈠叓涓細鏀惧湪x+1鐨勪綅缃笂锛屼篃灏辨槸楂樹綅锛屼笉鐭ラ亾浣犳噦浜嗘病銆
绛旓細return 0;} 杩愯缁撴灉鏄:1234000d Press any key to continue 涔熼獙璇佷簡濡備笂璇存硶.瀵逛簡,浣庡瓧鑺灏辨槸鏀惧湪浣庝綅鐨勫瓧鑺,鍚屾牱,楂樺瓧鑺傚氨鏄斁鍦楂樹綅鐨勫瓧鑺,鍦ㄤ笂闈㈢殑瑙h涓,瀛楄妭浠庝綆鍒伴珮渚濇鏄:bit0,bit1,bit2,bit3,楂樹綆涓嶆槸鐪嬮偅涓瓧鑺傚湪鍐呭瓨涓槸鏀惧湪楂樺湴鍧杩樻槸鍦ㄤ綆鍦板潃,鑰屾槸鐪嬪畠鏄綔涓烘暟鎹鐨勯珮浣杩樻槸浣庝綅.