c++中int向char转换的原理 c++ 如何把一个int转为char*

C++\u4e2d\u7684int\u548cchar\u4e4b\u95f4\u7684\u8f6c\u6362\u95ee\u9898

\u9996\u5148\u4f60\u8981\u6e05\u695a\uff0c\u5728C++\u4e2dint\u578b\u53604\u4e2a\u5b57\u8282\uff0c\u800cchar\u7c7b\u578b\u53ea\u53601\u4e2a\u5b57\u8282\uff0cchar\u7c7b\u578b\u662f\u53ef\u4ee5\u8f6c\u5316\u4e3aint\u7c7b\u578b\u7684\uff0c\u4f46int\u7c7b\u578b\u4e0d\u4e00\u5b9a\u53ef\u4ee5\u8f6c\u6362\u4e3achar\u7c7b\u578b\u3002

\u6211\u5bf9\u4f60\u8fd9\u4e2a\u95ee\u9898\u7684\u7406\u89e3\u662f\uff0c\u4f60\u60f3\u5c060\u52309\u4e4b\u95f4\u7684\u6570\u5b57\u8f6c\u5316\u4e3achar\u7c7b\u578b\u7684\uff0c\u6216\u662f\u5c06'0'-'9'\u4e4b\u95f4\u7684\u5b57\u7b26\u8f6c\u5316\u4e3aint\u578b\u7684\u6570\u5b57\u3002

\u4f60\u5982\u679c\u8981\u7528\u5f3a\u5236\u8f6c\u6362\u7684\u8bdd\u53ef\u4ee5\u8fd9\u6837\uff1a\uff080\u7684ASCII\u7801\u662f48\uff09
int a;
char b;
a=(int)(b-48);\u6216b=(char)(a+48);
//\u8fd9\u6837\u8f6c\u5316\u7684\u524d\u63d0\u662fa\u7684\u8303\u56f4\u662f0-9\uff0cb\u7684\u8303\u56f4\u662f'0'-'9'

\u5728\u5b9e\u9645\u8fd0\u7528\u4e2d\uff0c\u5728\u6574\u578b\u548c\u5b57\u7b26\u578b\u4e4b\u95f4\u8f6c\u5316\u7528\u5f97\u8f83\u591a\u7684\u5e94\u8be5\u8981\u7b97int\u578b\u4e0echar *\u7c7b\u578b\u4e4b\u95f4\u7684\u8f6c\u5316\u4e86\u3002\u8fd9\u4e2a\u65f6\u5019\u53ef\u4ee5\u7528atoi\uff08\u5b57\u7b26\u578b\u8f6c\u6574\u578b\uff0c\u53ef\u4ee5\u5206\u5f00\u7406\u89e3a to i\uff09\u548citoa\uff08\u6574\u578b\u8f6c\u5b57\u7b26\u578b\uff0ci to a\uff09\uff0c\u5982\uff1a
int a=11111
char* b="33333";
a=atoi(b);//\u5c06\u6574\u578b\u8f6c\u5316\u4e3a\u5b57\u7b26\u4e32
\u6216
itoa(a,b,10);//\u5c06\u5b57\u7b26\u4e32\u8f6c\u5316\u4e3a\u6574\u578b\uff0c\u6700\u540e\u4e00\u4e2a\u53c2\u6570\u662f\u8fdb\u5236\uff0c\u5728\u8fd9\u91cc\u662f10\u8fdb\u5236

\u628aint\u7c7b\u578b\u6570\u5b57\u8f6c\u6210char\u7c7b\u578b\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u65b9\u6cd5\uff1a
char b[4];i
nt a\uff1b
for(int i=00;i<4;i++)
{
b[i]=(char)a;
a=a>>8;
}
int\u7528\u4e8e\u7b26\u53f7\u222b\uff0cint(s)\u7b26\u53f7\u8868\u8fbe\u5f0fs\u7684\u4e0d\u5b9a\u79ef\u5206\u3002int(s,v)\u7b26\u53f7\u8868\u8fbe\u5f0fs\u5173\u4e8e\u53d8\u91cfv\u7684\u4e0d\u5b9a\u79ef\u5206\u3002int(s,a,b)\u7b26\u53f7\u8868\u8fbe\u5f0fs\u7684\u5b9a\u79ef\u5206, a,b\u5206\u522b\u4e3a\u79ef\u5206\u7684\u4e0b\u9650\u548c\u4e0a\u9650\u3002
int(s,v,a,b)\u7b26\u53f7\u8868\u8fbe\u5f0fs\u5173\u4e8e\u53d8\u91cfv\u4ece a\u5230b\u7684\u5b9a\u79ef\u5206\uff0c\u5f53int\u6c42\u4e0d\u51fa\u7b26\u53f7\u89e3\uff0c\u4f1a\u81ea\u52a8\u8f6c\u6c42\u6570\u503c\u89e3\u3002

\u6269\u5c55\u8d44\u6599\u5982\u679c\u4e00\u4e2a\u53d8\u91cf\u58f0\u660e\u65f6\u5728\u524d\u9762\u4f7f\u7528 * \u53f7\uff0c\u8868\u660e\u8fd9\u662f\u4e2a\u6307\u9488\u578b\u53d8\u91cf\u3002\u6362\u53e5\u8bdd\u8bf4\uff0c\u8be5\u53d8\u91cf\u5b58\u50a8\u4e00\u4e2a\u5730\u5740\uff0c\u800c *\uff08\u6b64\u5904\u7279\u6307\u5355\u76ee\u8fd0\u7b97\u7b26 * \uff0c\u4e0b\u540c\u3002C\u8bed\u8a00\u4e2d\u53e6\u6709 \u53cc\u76ee\u8fd0\u7b97\u7b26 *\uff09 \u5219\u662f\u53d6\u5185\u5bb9\u64cd\u4f5c\u7b26\uff0c\u610f\u601d\u662f\u53d6\u8fd9\u4e2a\u5185\u5b58\u5730\u5740\u91cc\u5b58\u50a8\u7684\u5185\u5bb9\u3002\u6307\u9488\u662f C \u8bed\u8a00\u533a\u522b\u4e8e\u5176\u4ed6\u540c\u65f6\u4ee3\u9ad8\u7ea7\u8bed\u8a00\u7684\u4e3b\u8981\u7279\u5f81\u4e4b\u4e00\u3002
\u6307\u9488\u4e0d\u4ec5\u53ef\u4ee5\u662f\u53d8\u91cf\u7684\u5730\u5740\uff0c\u8fd8\u53ef\u4ee5\u662f\u6570\u7ec4\u3001\u6570\u7ec4\u5143\u7d20\u3001\u51fd\u6570\u7684\u5730\u5740\u3002\u901a\u8fc7\u6307\u9488\u4f5c\u4e3a\u5f62\u5f0f\u53c2\u6570\u53ef\u4ee5\u5728\u51fd\u6570\u7684\u8c03\u7528\u8fc7\u7a0b\u5f97\u5230\u4e00\u4e2a\u4ee5\u4e0a\u7684\u8fd4\u56de\u503c\uff0c\u4e0d\u540c\u4e8ereturn\uff08z\uff09\u8fd9\u6837\u7684\u4ec5\u80fd\u5f97\u5230\u4e00\u4e2a\u8fd4\u56de\u503c\u3002

字符是站一个字节,并且是无符号的。因此如果整形大于256的话,就取余,即:n%256.这样322%256=66.因此进行转换的时候,char c=66;也就是'B'.

int到char是ASC码啊?

char c=a,是将a代表的字符赋值给c.322转换成16进制就是B了。所以c=B
由于B的ASCII为66,故b=66

int是4位, char是1位(0-255), 322>255, 所以会被截断322%256就是66, 66对应的字符就是B

直接用强制类型转换就行了比如
char
c
='0x04';
int
i
=(int)c;

  • C++涓殑int鍜char涔嬮棿鐨杞崲闂
    绛旓細棣栧厛浣犺娓呮锛屽湪C++涓璱nt鍨嬪崰4涓瓧鑺傦紝鑰宑har绫诲瀷鍙崰1涓瓧鑺傦紝char绫诲瀷鏄彲浠杞寲涓篿nt绫诲瀷鐨勶紝浣唅nt绫诲瀷涓嶄竴瀹氬彲浠ヨ浆鎹负char绫诲瀷銆傛垜瀵逛綘杩欎釜闂鐨勭悊瑙f槸锛屼綘鎯冲皢0鍒9涔嬮棿鐨勬暟瀛杞寲涓篶har绫诲瀷鐨勶紝鎴栨槸灏'0'-'9'涔嬮棿鐨勫瓧绗﹁浆鍖栦负int鍨嬬殑鏁板瓧銆備綘濡傛灉瑕佺敤寮哄埗杞崲鐨璇濆彲浠ヨ繖鏍凤細锛0鐨凙SCII鐮...
  • 鎴戦渶瑕佸仛涓涓C绋嬪簭,灏int杞崲涓char鐨鍑芥暟
    绛旓細include<stdio.h> main(){ int n;char s[25];int i,k;int temp,t;scanf("%d",&n);temp=n;i=k=0;while(temp!=0){ i++;temp=temp/10;} s[i]=0;for(k=i-1;k>=0;k--){ t=n%10;s[k]=t+'0';n=n/10;} puts(s);} ...
  • c璇█涓濡備綍灏int鏁板瓧杞寲涓篶har
    绛旓細int 鍜 char 鏄氱敤鐨,涓嶇敤杞崲 鍙槸鍦ㄨ緭鍑虹殑鏃跺欑敤%d (浠ユ暣鍨嬭緭鍑)鍜%c(浠ュ瓧绗﹀紕杈撳嚭)杈撳嚭灏辫浜!浣犵湅鐪嬭繖涓▼搴忓氨鏄庣櫧浜:include<stdio.h> void main(){ int a=97;printf("鏁村瀷鏁:%d\n",a);printf("瀛楃鍨:%c\n",a);}
  • 鎬庢牱鎶int绫诲瀷杞彉鎴char绫诲瀷
    绛旓細璇曡瘯鐪嬪己鍒杞崲?int b=10;char a=(char) b;
  • C璇█int鍨杞琧har鍨嬪苟鐩告帴
    绛旓細1.value 瀹氫箟涓char 绫诲瀷 灞炰簬 const char*,鏄笉鑳芥敼鍙樺煎拰澶у皬鐨勶紝鎵浠ヨ繖涓猻trcat锛堬級灏变笉鑳戒娇鐢紝娌℃湁閭d箞澶х┖闂淬2.绫诲瀷杞崲瑕佸尮閰嶏紝涓嶈兘鎶婁竴涓彉閲忚浆鎹㈡垚鎸囬拡銆傛墍浠 杩欎釜搴旇鏄 (char*)&i;int main(){ int i;char t[15]= "test";for(i=0;i<10;i++){ strcat(t,(char*)&i);}...
  • 鍏充簬c璇█涓,int 321杞崲涓char鍨,鏄粈涔,鎬庝箞绠楃殑
    绛旓細浣犲ソ锛侊紒鏁村舰涓鑸崰2涓瓧鑺傦紝閭d箞321鐨勪簩杩涘埗灏辨槸锛0000 0001 0100 0001閭d箞鎶int 鐨勬暟鎹祴鍊肩粰char,閭d箞灏辨妸绗叓浣嶈祴鍊肩粰char 鏁0100 0001锛岄偅涔堝搴旂殑鍗佽繘鍒跺氨鏄65 涓嶇悊瑙g殑璇濓紝鎴戜滑鍦ㄤ氦娴侊紒锛侊紒
  • c璇█int鍨嬫暟鎹杞琧har鍨嬫暟鎹,灏辨槸灏嗕竴涓猧nt鐨勯珮浣庝袱涓瓧鑺傚垎鍒杞崲鎴愪袱...
    绛旓細unsigned int y; //瀹氫箟涓涓棤绗﹀彿鏁村舰 unsigned char m,n; //瀹氫箟涓や釜闀垮害涓8浣嶇殑鍙橀噺 m=y>>8; //灏嗘暟鎹悜鍙崇Щ鍔ㄥ叓浣嶏紝閭d箞楂樹綅鐨勮瘽灏卞叏閮ㄦ槸0浜嗭紝鐒跺悗灏嗕竴涓INT绫诲瀷鐨勬暟鎹紶閫掔粰涓涓Char绫诲瀷鐨勬暟鎹 n=y; //鐩存帴灏咺NT鏁版嵁浼犻掔粰char绫诲瀷锛岃繖閲屽皢浼氬彂鐢熸暟鎹涪澶 ...
  • 鎶int 65535杞崲涓char鐨缁撴灉鏄?int 99杞负 float ,涓轰粈涔堟垜寰楃殑缁撴灉鏄...
    绛旓細printf("%f\n",(float) a); 瑕佺敤寮哄埗杞崲銆俛 鏄 int, 瑕佺敤%d 鏍煎紡杈撳嚭銆--- include <stdio.h> void main(){ int a=65535;float f;char c;unsigned char u;c = (char) a; // 杩欐槸鏈夌鍙穋har 鍨嬶紝缁撴灉涓 -1 u = (unsigned char) a; // 濡傛灉鐢ㄦ棤绗﹀彿char 鍨嬶紝...
  • 姹侰++璇彞,濡備綍鎶int鍙橀噺杞崲鎴恈har鍙橀噺,骞舵坊鍔犲埌鍙︿竴涓char鐨...
    绛旓細鐢╯printf鍑芥暟 int count0 = 666;string sendBuf0 = "杩欐槸瀹㈡埛绔彂閫佺殑娑堟伅.";char tempchar[100] = "鍒濆鍖"; // 瑕佸垎閰嶇┖闂//itoa(count0,tempchar,10);sprintf(tempchar, "%d", count0);string sendBuf1 = tempchar;sendBuf0 += sendBuf1;cout<<"sendBuf0 = "<<sendBuf0<<...
  • c++涓璱nt鍚慶har杞崲鐨鍘熺悊
    绛旓細瀛楃鏄珯涓涓瓧鑺傦紝骞朵笖鏄棤绗﹀彿鐨勩傚洜姝ゅ鏋滄暣褰㈠ぇ浜256鐨勮瘽锛屽氨鍙栦綑锛屽嵆锛歯%256.杩欐牱322%256=66.鍥犳杩涜杞崲鐨鏃跺欙紝char c=66;涔熷氨鏄'B'.
  • 扩展阅读:c++中<< ... 将char转换为int会怎样 ... c++将int强制转换为char ... c++中char类型转为int ... c++int转换成char ... int和char可以相互转换吗 ... c++vector int char ... c++ char与string转换 ... c++中char用法 ...

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