为何在c++中要将一个char型的变量以数的形式输出需要将其强制转换成int 型的,而单片机中不用 C++ char转换成int问题

C++\u8f93\u5165\u4e00\u4e2achar\u5b57\u7b26\uff0c\u5c06\u5b57\u7b26\u5f3a\u5236\u7c7b\u578b\u8f6c\u6362\u4e3aint\u578b\uff0c\u4e3a\u4ec0\u4e48\u8f93\u51fa\u7684\u4f1a\u662f\u5b83\u7684ASCII\u7801

1.\u4f60\u8bf4\u7684\u662fASCII\u7801\u54272.\u8f93\u5165\u5b57\u7b26\u8f6c\u5316\u4e3aASCII\u662f\u4ec0\u4e48\u610f\u601d\uff1fASCII\u7801\u672c\u8eab\u5c31\u662f\u4e00\u7cfb\u5217\u5b57\u7b26\uff0c\u4f60\u8bf4\u7684\u662fASCII\u7801\u503c\u4e48\uff1f3.\u8981\u5c06ASCII\u7801\u8fdb\u884c\u54ea\u79cd\u8fd0\u7b97\u540e\u8f93\u51fa\uff1f
\u63d0\u793a\u4e00\u4e0b\uff0c\u5355\u4e2aASCII\u5b57\u7b26\u662f\u53ef\u4ee5\u5f3a\u5236\u8f6c\u6362\u4e3aINT\u7684\u3002

\u4f60\u7684\u95ee\u9898\u53ef\u4ee5\u6709\u4e24\u4e2a\u7406\u89e3\uff1a
\u7406\u89e3\u4e00\u3001\u4f60\u662f\u60f3\u628aint\u578b\u7684\u53d8\u91cf\u5f3a\u5236\u8f6c\u6362\u4e3achar\u578b\u7684\u53d8\u91cf\u5417\uff1f\u5f88\u7b80\u5355\u5728\u53d8\u91cf\u524d\u52a0\u5f3a\u5236\u8f6c\u6362\u8fd0\u7b97\u7b26\u5c31\u53ef\u4ee5\u4e86\u3002\u4f8b\u7a0b\uff1a
int a=1;
char c=(char)a; //\u628aa\u5f3a\u5236\u8f6c\u6362\u4e3achar\u578b\u8d4b\u7ed9\u53d8\u91cfc
\u7406\u89e3\u4e8c\u3001\u4f60\u662f\u60f3\u628a1\u8f6c\u6362\u4e3a\u5b57\u7b26\u20181\u2019\u5427\uff1f\u5728ASCII\u7f16\u7801\u8868\u4e2d\uff0c\u5b57\u7b26\u20180\u2019\uff5e\u20189\u2019\u662f\u987a\u5e8f\u7f16\u7801\u7684\uff0c\u6240\u4ee5\u7528\u76f8\u5e94\u7684\u503c\u52a0\u4e0a\u5b57\u7b26\u20180\u2019\u7684\u7f16\u7801\uff0c\u5c31\u662f\u90a3\u4e2a\u503c\u7684ASCII\u7801\u4e86\u3002\u4f8b\u7a0b\uff1a
int a=1;
char c=a+'0'; //c\u7684\u503c\u5c31\u662f'1'\u7684ASCII\u7801\u503c

任何变量在内存中的存储都是二进制数。
在输出的时候,
c++中,cout<< 输出一个char型变量默认就是字符串。要输出数字需要强制转换。
在c中,printf,是格式化输出,对于一个char型变量,%c输出字符串,%d输出其ascii码值,不需要强制转换。

如果用cout输出需要转换, 用printf不用的.
因为cout会自己判断变量的类型, 然后根据类型来决定如何输出

  • 涓轰綍鍦╟++涓灏嗕竴涓猚har鍨嬬殑鍙橀噺浠ユ暟鐨勫舰寮忚緭鍑洪渶瑕佸皢鍏跺己鍒惰浆鎹㈡垚int...
    绛旓細鍦╟涓锛宲rintf锛屾槸鏍煎紡鍖栬緭鍑猴紝瀵逛簬涓涓猚har鍨嬪彉閲忥紝%c杈撳嚭瀛楃涓诧紝%d杈撳嚭鍏禷scii鐮佸硷紝涓嶉渶瑕佸己鍒惰浆鎹
  • char鍦╟璇█涓槸浠涔堟剰鎬?
    绛旓細char鏄竴涓猚璇█涓殑鍩虹鏁版嵁绫诲瀷锛屽畠琛ㄧず涓涓瓧绗︽垨鑰呬竴涓瓧绗︽暟缁銆傚湪c璇█涓紝char閫氬父鍗犵敤涓涓瓧鑺傜殑瀛樺偍绌洪棿锛屼篃灏辨槸8涓瘮鐗逛綅銆俢har绫诲瀷鐨勫彉閲忓彲浠ョ敤鏉ュ瓨鍌ㄥ崟涓瓧绗︼紝姣斿瀛楁瘝銆佹暟瀛椼佹爣鐐圭鍙风瓑绛夈傚悓鏃讹紝涔熷彲浠ヤ娇鐢╟har绫诲瀷鐨勫彉閲忔潵琛ㄧず涓涓瓧绗︿覆锛屼篃灏辨槸鐢变竴涓插瓧绗︽瀯鎴愮殑鏁扮粍銆傚湪c璇█涓紝char...
  • C璇█涓殑char鍏蜂綋鐢ㄦ硶
    绛旓細C璇█涓璫har鐢ㄤ簬瀹氫箟瀛楃绫诲瀷鍙橀噺鎴栧瓧绗︽寚閽堝彉閲锛屼緥濡傗渃har a;鈥濆垯瀹氫箟浜嗗彉閲廰鏄瓧绗︾被鍨嬶紝鈥渃har *a;鈥濆垯瀹氫箟浜嗗彉閲廰鏄瓧绗︽寚閽堢被鍨嬨俢har鏄疌璇█鏁村瀷鏁版嵁涓瘮杈冨彜鎬殑涓涓紝鍏跺畠鐨勫int/long/short绛変笉鎸囧畾signed/unsigned鏃堕兘榛樿鏄痵igned锛屼絾char鍦ㄦ爣鍑嗕腑涓嶆寚瀹氫负signed/unsigned锛岀紪璇戝櫒鍙互瀹炵幇涓...
  • c涓殑char涓昏鏄共浠涔堢殑,瑕佽缁
    绛旓細C 璇█涓,浣跨敤鍗曞紩鍙锋妸瀛楃寮曡捣鏉ュ氨鏋勬垚瀛楃甯搁噺銆傛垜浠潵鐪嬪彟澶涓涓渚嬪瓙: char fail; /* 澹版槑涓涓瓧绗﹀瀷鍙橀噺 */ fail = 'F'; /* 姝g‘ */ fail = "F"; /* 閿!"F" 鏄瓧绗︿覆瀛楅潰閲 */ 鎶瀛楃鐢ㄥ弻寮曞彿寮曡捣鏉ユ瀯鎴愬瓧绗︿覆瀛楅潰閲,鎵浠ョ涓変釜璇彞鏄敊璇殑銆傛垜浠細鍦ㄥ悗缁殑鏁欑▼涓璁哄瓧绗︿覆,鐜板湪鏆備笖鎶...
  • char鍦╟璇█涓槸浠涔堟剰鎬?
    绛旓細char* 鏄0鏄涓涓瀛楃绫诲瀷鐨勬寚閽堛傛瘮濡傦細chat* y锛涘氨鏄0鏄庝竴涓寚閽坹锛岃繖涓寚閽堟寚鍚戠殑鍦板潃涓婂彧鑳藉瓨鏀惧瓧绗︾被鍨嬬殑鍊笺
  • 鍦–璇█涓 char,float,int,void鏈変粈涔堝惈涔,鎴栬呭湪浠涔堟椂鍊欑敤,鍏蜂綋鐐...
    绛旓細1銆侀兘鏄笌绫诲瀷鏈夊叧鐨勫叧閿瓧銆2銆char/float/int鏄畾涔夊彉閲忕被鍨嬬殑锛歝har鏄畾涔夈愬瓧绗﹀瀷銆戝彉閲忥紝鍗犵敤1涓瀛楄妭锛沠loat鏄畾涔夈愭诞鐐瑰瀷銆戝彉閲忕殑锛屾槸鍗曠簿搴︾殑娴偣鍨嬶紝涓鑸笉瓒呰繃7浣嶆湁鏁堟暟瀛楋紝鍗犵敤4涓瓧鑺傦紱int鏄畾涔夈愭暣鍨嬨戝彉閲忕殑锛屽崰鐢2涓瓧鑺傘傘傛渶鍚巚oid鏄愮┖鍊煎瀷銆戠殑锛鍦–++涓病鏈夌┖鍊煎瀷鐨勫父閲忓拰鍙...
  • char 鏄粈涔堟剰鎬?
    绛旓細1銆乧har鏈変竴涓壒娈婄殑璇█灏辨槸char *锛屽畠鍦–/C++涓湁涓撻棬鐨勮涔夛紝鏃笉鍚屼簬signed char *锛屼篃涓嶅悓浜巙nsigned char *锛岃屾槸鐢ㄤ簬瀹氫箟鎸囬拡鍙橀噺锛屽锛歝har *p锛岃繖涓彉閲弍鏄釜鎸囬拡鍙橀噺锛涘氨鏄锛宲杩欎釜鍙橀噺閲岃兘瀛樺偍涓涓猚har绫诲瀷鐨勫彉閲忕殑棣栧湴鍧锛2銆佸湪MYSQL涓紝瀛楁绫诲瀷char鏄寚锛氫娇鐢ㄦ寚瀹氶暱搴︾殑鍥哄畾闀垮害...
  • 鍦–璇█涓,瀹氫箟浜涓涓猚har 绫诲瀷鐨勫彉閲,绯荤粺浼氳嚜鍔ㄧ粰浠栦粯鍒濆煎悧?_鐧惧害...
    绛旓細杈撳嚭涓烘棤鎰忎箟鐨勬暟 鍙畾涔夊彉閲char n;绯荤粺浼氬湪鍐呭瓨涓负鍏跺垎閰涓涓瀛楄妭鐨勫唴瀛樺湴鍧锛屽洜涓篶har鍗犵敤涓涓瓧鑺 褰撲綘涓嶈祴鍊艰岃緭鍑簄鏃讹紝绯荤粺浼氬湪n鎵鍦ㄧ殑鍐呭瓨鍦板潃閲屽幓鍙栧硷紝濡傛灉閭d釜鍐呭瓨閲屾湁鍏朵粬鏁版嵁娌℃竻绌虹殑璇濓紝灏变細杈撳嚭锛屾墍浠ヤ负鏃犳剰涔夌殑浜 寤鸿鍏堣祴鍊煎啀浣跨敤 ...
  • 鍦–璇█涓 char鐨勭敤娉曟槸鎬庝箞鐢ㄧ殑鍟
    绛旓細char鏄C璇█鏁村瀷鏁版嵁涓瘮杈冨彜鎬殑涓涓锛屽叾瀹冪殑濡俰nt/long/short绛変笉signed/unsigned鏃堕兘榛樿鏄痵igned銆傝櫧鐒禼har鍦ㄦ爣鍑嗕腑鏄痷nsigned(鍥犱负char绫诲瀷鎻愬嚭鐨勫垵琛锋槸鐢ㄦ潵琛ㄧずascii鐮侊紝ascii鐮佺殑鑼冨洿鏄0~127)锛屼絾瀹為檯鎯呭喌涓┒绔熸槸signed杩樻槸unsigned鍙栧喅浜庣紪璇戝櫒銆傚綋浣犱笉纭畾缂栬瘧鍣ㄧ殑榛樿char绫诲瀷鏃讹紝灏辩敤鏄剧ず澹版槑锛...
  • 扩展阅读:c++和python先学哪个 ... c++编程 ... python和c++哪个更值得学 ... c++和java哪个好就业 ... c++教程 ... c++是什么 ... c++中<< ... c++是什么意思 ... 学了python再学c++好学吗 ...

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