sizeof(char)=1,但为何char类型的取值范围是-128~127? sizeof(unsigned char)和sizeof(c...

\u5e2e\u6211\u89e3\u91ca\u4e0b\uff01\uff01 \u8c22\u8c22 \u8fd9\u662f\u6c42\u89e3\u6709\u7b26\u53f7char\u7c7b\u578b\u7684\u6700\u503c char a=8*sizeof(char)-1,b=1; b<<=a; \u8fd9\u4e24\u53e5\u4e0d\u660e\u767d

char a=8*sizeof(char)-1,b=1;
C\u8bed\u8a00\u91cc\uff0c\u89c4\u5b9asizeof\u8ba1\u6570\u7684\u662f\u5b57\u8282\uff0c\u4e00\u4e2a\u5b57\u8282\u5462\u5c31\u662f8\u4f4d\u4e8c\u8fdb\u5236\u6570\u3002
\u8fd9\u53e5\u8bdd\u5c31\u662f\u83b7\u5f97char\u7684\u4f4d\u6570\uff0c\u4e00\u822c\u4f4d\u6570\u4ece0\u5f00\u59cb\u8bb0\uff0c8\u4f4d\u5c31\u662f7\u4e86\uff0c\u7b2c8\u4f4d\u7684\u6743\u91cd\u5c31\u662f2\u76847\u6b21\u65b9\u3002
\u8fd9\u91cc\u5047\u8bbechar\u662f8\u4f4d\u4e8c\u8fdb\u5236\uff0c\u90a3\u4e48a\u5c31\u7b49\u4e8e7.
b<<=a;
b<<=a;\u5c31\u662fb = b<<a\uff1b\u5c31\u662fb\u7684\u503c\u53d8\u4f4db\u5de6\u79fba\u4f4d\u3002
\u4e5f\u5c31\u662f1\u5de6\u79fb7\u4f4d\uff0c\u4e8c\u8fdb\u5236\u4e3a10000000.
\u8fd9\u4e2a\u662f\u5e26\u7b26\u53f7\u7684\u6570\uff0c\u6700\u9ad8\u4f4d\u4e3a1\uff0c\u90a3\u4e48\u5c31\u662f\u8d1f\u6570\uff0c\u800c\u8d1f\u6570\u662f\u8865\u7801
\u6240\u4ee5\uff0c10000000\u53d6\u53cd\u540e\u5c31\u662f11111111\uff0c\u628a\u7b26\u53f7\u4f4d\u53bb\u4e86\u5c31\u662f01111111\u518d\u52a01\u5c31\u662f10000000\u5c31\u662f-128\u4e86\u3002
\u800c\u540e\u9762b=~b;
\u5c0610000000\u6309\u4f4d\u53d6\u53cd\uff0c\u5c31\u53d8\u6210\u4e8601111111\uff0c
\u6700\u9ad8\u4f4d\u4e3a\u7b26\u53f7\u4f4d\uff0c\u4e5f\u5c31\u662f+127.

\u90a3\u4e48char\u7684\u8303\u56f4\u5c31\u662f -128 ~ +127\uff08\u5047\u8bbechar\u4e3a8\u4f4d\uff0c\u6ce8\u610f\u8fd9\u91cc\u662f\u5e26\u7b26\u53f7\u7684\uff09.

\u5bf9\u4e8e\u4e0d\u540c\u7684\u8ba1\u7b97\u673a\u67b6\u6784\uff0c\u4e00\u4e2a\u5b57\u8282\u53ef\u80fd\u5305\u542b8\u4e2a\u6216\u8005\u66f4\u591a\u7684\u4f4d\uff0c\u5177\u4f53\u4e00\u4e2a\u5b57\u8282\u5305\u542b\u591a\u5c11\u4f4d\u4fdd\u5b58\u5728\u5b8fCHAR_BIT\u4e2d\u3002\u65e0\u8bba\u4e00\u4e2a\u5b57\u8282\u5305\u542b\u591a\u5c11\u4f4d\uff0cC++\u6807\u51c6\u89c4\u5b9a\uff1asizeof( unsigned char \uff09\u548csizeof( char )\u548csizeof( signed char \uff09\u603b\u662f\u7b49\u4e8e1\u3002

cppreference\u5173\u4e8esizeof( char )\u7684\u539f\u6587\uff1a

sizeof(char)返回的值是1个字节,1个字节是8个位.怎么是4个位呢?字节也是计算机存储和计算的最小单位.任何计算机上,一个字节都是8个位.

..楼主,sizeof()的值是字节数,1个字节是8位二进制啊。。

sizeof()是返回字节为单位的,一个字节8位

  • c璇█绋嬪簭閲sizeof鏄粈涔堟剰鎬
    绛旓細鍦 Pascal 璇█涓锛宻izeof() 鏄涓绉嶅唴瀛樺閲忓害閲忓嚱鏁帮紝鍔熻兘鏄繑鍥炰竴涓彉閲忔垨鑰呯被鍨嬬殑澶у皬锛堜互瀛楄妭涓哄崟浣嶏級锛涘湪 C 璇█涓紝sizeof() 鏄竴涓垽鏂暟鎹被鍨嬫垨鑰呰〃杈惧紡闀垮害鐨勮繍绠楃銆傚湪Pascal 璇█涓嶤璇█涓紝瀵 sizeof() 鐨勫鐞嗛兘鏄湪缂栬瘧闃舵杩涜銆
  • C璇█:缂栧啓涓涓枃浠跺鍒剁▼搴忋傝姹傛彁绀虹敤鎴疯緭鍏ュ師鏂囦欢鍚嶅拰鐩爣鏂囦欢鍚...
    绛旓細FILE* out=NULL;if((in=fopen(in_path,"rb"))==NULL){ printf("鏃犳硶鎵撳紑婧愭枃浠!\n");return(1);} if((out=fopen(out_path,"wb+"))==NULL){ printf("鏃犳硶鍒涘缓鐩爣鏂囦欢!\n");fclose(in);return(1);} char data;while(!feof(in)){ if(1==fread(&data,sizeof(char),1,in))...
  • char a=255; printf("%d",sizeof(++a)); printf("%d",a); 绗簩涓緭鍑...
    绛旓細璋冭瘯鐨勬椂鍊欏彲浠ョ湅涓嬪唴瀛橈紝杩欎釜鏄渶鏉冨▉鐨勶紝浣犵殑鐤戦棶閮藉彲浠ラ氳繃鐪嬪唴瀛樿В鍐炽俛鐨勭被鍨嬫槸char锛屽崰涓涓瓧鑺傦紝16杩涘埗鏄0xff銆sizeof(char)鐨勫ぇ灏忔槸1锛鎵浠ョ涓涓墦鍗1銆傞獙璇佷簡涓嬶紝姝ゅ++a娌℃湁鍔犮俿izeof涓鑸笉浼氬鍚庨潰鐨勮〃杈惧紡姹傝亴锛屽彧浼氬垽鏂畠鐨勭被鍨嬶紝浣犲彲浠ヨ瘯璇曟眰涓涓嚱鏁板悕鐨勫ぇ灏忥紝浣犱細鍙戠幇閭d釜鍑芥暟鏄...
  • 璁炬湁瀹氫箟:char p[]={鈥1鈥,鈥2鈥,鈥3鈥檥,*q=p;,
    绛旓細A 鎶辨瓑鐪嬮敊浜嗭紝p鏄寚閽堬紝sizeof(p)=4锛*p鏄寚閽堟寚鍚戠殑鍙橀噺锛宻izeof(*p)=sizeof(char)=1 include <iostream> using namespace std;int main(){ char p[] = "123", *q = p;cout << sizeof(p) << endl;//4 cout << sizeof(char) << endl;//1 cout << sizeof(*q) << ...
  • sizeof鍦╟璇█涓槸浠涔堟剰鎬
    绛旓細sizeof鏄疌璇█涓繚鐣欏叧閿瓧锛屼篃鍙互璁や负鏄涓绉嶈繍绠楃锛屽崟鐩繍绠楃銆傚湪 Pascal 璇█涓锛宻izeof() 鏄竴绉嶅唴瀛樺閲忓害閲忓嚱鏁帮紝鍔熻兘鏄繑鍥炰竴涓彉閲忔垨鑰呯被鍨嬬殑澶у皬锛堜互瀛楄妭涓哄崟浣嶏級锛涘湪 C 璇█涓紝sizeof() 鏄竴涓垽鏂暟鎹被鍨嬫垨鑰呰〃杈惧紡闀垮害鐨勮繍绠楃銆傚湪Pascal 璇█涓嶤璇█涓紝瀵 sizeof() 鐨勫鐞嗛兘鏄...
  • char a ='1'鍜宨nt a ='1'鏈変粈涔堝尯鍒
    绛旓細char a ='1'瀛楃鍙橀噺鑰屼笉鏄瓧绗︿覆鍙橀噺 int a ='1' 鏁村瀷鍙橀噺 char a 鐨勫艰寖鍥翠负-128~127 int a 鐨勫艰寖鍥翠负-2^32 ~2^32-1
  • char *p="ab";闂 sizeof(*p) 鏄灏?璇烽珮浜鸿缁嗘寚鐐,鎴戞槸搴曞眰杞欢宸ョ▼甯...
    绛旓細sizeof锛*p锛夋槸1锛鍥犱负p鏄寚鍚戝瓧绗︿覆鐨勬寚閽堬紝*p鏄痑锛屾墍浠izeof锛*p锛夋槸sizeof锛坅锛夌殑鎰忔濓紝鎵浠ユ槸1 鑰宻izeof锛坧锛夋槸4锛屽洜涓簆鏄瓧绗﹀瀷鐨勬寚閽堬紝瀹冨瓨鏀剧殑鏄瓧绗︿覆鐨勫湴鍧锛屾棦鐒舵槸瀛樻斁涓涓湴鍧锛岄偅涔堝氨鍜宨nt浠涔堢殑涓鏍凤紝鏄洓涓瓧鑺傦紝鎵浠
  • c璇█閲:sizeof鎬庢牱鐢ㄦ硶?
    绛旓細typedef unsigned int size_t;涓栦笂缂栬瘧鍣ㄦ灄鏋楁绘伙紝浣嗕綔涓轰竴涓鑼冿紝瀹冧滑閮戒細淇濊瘉char銆乻igned char鍜寀nsigned char鐨剆izeof鍊间负1锛姣曠珶char鏄垜浠紪绋嬭兘鐢ㄧ殑鏈灏忔暟鎹被鍨嬨2. 璇硶锛歴izeof鏈変笁绉嶈娉曞舰寮忥紝濡備笅锛1) sizeof( object ); // sizeof( 瀵硅薄 );2) sizeof( type_name ); // size...
  • c璇█閲:sizeof鎬庢牱鐢ㄦ硶?
    绛旓細sizeof鍒ゆ柇鏁版嵁绫诲瀷鎴栬呰〃杈惧紡闀垮害绗︼紱涓嶆槸涓涓嚱鏁帮紝瀛楄妭鏁扮殑璁$畻鍦ㄧ▼搴忕紪璇戞椂杩涜锛岃屼笉鏄湪绋嬪簭鎵ц鐨勮繃绋嬩腑鎵嶈绠楀嚭鏉ャ傜敤娉曪細sizeof(绫诲瀷璇存槑绗︼紝鏁扮粍鍚嶆垨琛ㄨ揪寮);鍔熻兘锛氳绠楁暟鎹┖闂寸殑瀛楄妭鏁 鍙傝冧唬鐮侊細include <iostream>using namespace std;int main(){double* (*a)[3][6]; cout<<size...
  • 宸茬煡:char *s="abcde"; 鍒sizeof(s)銆乻izeof(*s)銆乻trlen(s)鐨勫间緷娆...
    绛旓細绛旀鏄 4 1 5
  • 扩展阅读:sizeof double ... strcmp ... sizeof long ... strcat ... sizeof short ... args ... sizeof int ... char ... c语言中sizeof的用法 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网