C语言强制转换,int型值为500转char型值为什么是-12? C语言强制类型转换问题

C\u8bed\u8a00 \u5f3a\u5236\u7c7b\u578b\u8f6c\u6362\u95ee\u9898

\u6839\u636ec\u8bed\u8a00\u4f18\u5148\u7ea7\uff0c\u7b2c2\u4e2a\u5f0f\u5b50\u5c06\u4f1a\u4f18\u5148\u8ba1\u7b97\uff085/2)\u8fd9\u662f\u5c1a\u672a\u7c7b\u578b\u8f6c\u6362\uff0c\u56e0\u6b645\u548c2\u90fd\u662f\u6309\u6574\u6570\u8ba1\u7b97\uff0c\uff085/2)\u7ed3\u679c\u662f2\u6574\u6570\uff0c\u4e4b\u540e\u518d\u8fdb\u884c\u7c7b\u578b\u8f6c\u6362\uff0c\u53d8\u62102.0,\u5373\u503c\u7b49\u4e8e2


char型范围是-128~127。500超限了,只取二进制低八位——500的二进制是111110100,取低八位是11110100,这个数刚好是十进制数-12的补码。

对于char类型只占用一个字节,因此其能表示的数的范围是-128~+127,500超出其范围,500的十六进制数表示为1f4,其低位字节是f4H,这个字节会赋值给s,高位字节01H被默认舍弃,而f4就是-12的补码表示形式

500已经超过ASCII码表的标准表的最大表示范围(ASCII码表的标准表的最大表示范围是0-128)

  • C璇█涓璱nt s,r=5;鎬庝箞杞崲鎴恉ouble鍨嬭绠
    绛旓細鐩存帴寮鸿浆灏辫浜嗭紝鍙﹀锛屼綘杩欓噷鐨剆娌℃湁璧嬪 渚嬶細int s = 10,r = 5;double sum;sum = (double)s (double)r (double)r;
  • C璇█寮哄埗杞崲,int鍨嬪间负500杞琧har鍨嬪间负浠涔堟槸-12?
    绛旓細char鍨嬭寖鍥存槸-128~127銆500瓒呴檺浜嗭紝鍙彇浜岃繘鍒朵綆鍏綅鈥斺500鐨勪簩杩涘埗鏄111110100锛屽彇浣庡叓浣嶆槸11110100锛岃繖涓暟鍒氬ソ鏄崄杩涘埗鏁-12鐨勮ˉ鐮併
  • 鍏充簬c璇█瀛楄妭鍦板潃鐨勯棶棰 鍋囪 int =5; 鏁村瀷鏄4涓瓧鑺,閭d箞瀹冪殑鍦板潃...
    绛旓細涓涓int鍨4涓瓧鑺傜粍鎴愶紝姣忎釜瀛楄妭鍏跺疄閮芥湁鍦板潃锛岃屼唬琛ㄨ繖涓暣鍨嬬殑鏄鍦板潃銆傚浣曡瘉鏄庢垜鎵璇寸殑锛屽氨鏄竴涓暣鍨嬫暟缁勶紝姣忎釜鏁扮粍鍏冪礌涔嬮棿鐨勫湴鍧锛堝嵆鍏冪礌棣栧湴鍧锛夌浉宸4
  • c璇█涓涓轰簡绮惧害鎶int寮哄埗杞寲涓轰粈涔绫诲瀷?
    绛旓細while(i<=___) 杩欓噷濉50 i姣忔鑷2锛屽~50鍒氬ソ寰幆25娆 ..sum+=1/___ 杩欓噷濉 (float)i 绫诲瀷涓嶅悓浼氬彂鐢熼殣寮忚浆鎹㈢壓鐗茬簿搴 ..鎵浠ヤ娇鐢▃(float)i锛屾妸int寮哄埗杞崲鎴恌loat銆俰nt main(){ int i=2;float sum=1.0;while(i<=50){ bai sum+=1/(float)i;i+=2;} printf("sum=%f\n"...
  • C璇█鎻愰棶 璇烽棶鎬庝箞鎶婃暣鍨嬫暟杞寲涓瀛楃鍨嬫暟鍟,姣斿鎶婃暣鍨嬬殑5杞负瀛楃鍨...
    绛旓細c璇█涓瀛楃鍨嬬敱ascii鐮佽〃绀虹殑 鏁板瓧0鐨刟scii鏄48锛1鏄49.銆傘傘傚疄渚嬶細include<Stdio.h> main(){int a;a=53; //53鏄5鐨刟scii鐮 printf("%c",a);//杩欓噷鏄杞崲鐨勫叧閿紝浠ュ瓧绗﹀瀷杈撳嚭%c }
  • 璇烽棶C璇█濡備綍瀹炵幇鏁版嵁绫诲瀷鐨勫己鍒惰浆鍖?
    绛旓細鎴 锛坱ype锛<expression> 鍏朵腑锛宼ype涓虹被鍨嬫弿杩扮锛屽int锛float绛夈<expression>涓鸿〃杈惧紡銆傜粡寮哄埗绫诲瀷杞崲杩愮畻绗﹁繍绠楀悗锛岃繑鍥炰竴涓叿鏈塼ype绫诲瀷鐨勬暟鍊硷紝杩欑寮哄埗绫诲瀷杞崲鎿嶄綔骞朵笉鏀瑰彉鎿嶄綔鏁版湰韬紝杩愮畻鍚庢搷浣滄暟鏈韩鏈敼鍙橈紝渚嬪锛歩nt nVar=0xab65;char cChar=char (nVar);涓婅堪寮哄埗绫诲瀷杞崲鐨勭粨鏋滄槸灏嗘暣鍨...
  • c璇█:int鍨鐨寮哄埗绫诲瀷杞崲鏄鎸夊洓鑸嶄簲鍏ュ悧?
    绛旓細浣滀负鍑芥暟锛孖NT鍑芥暟鎸囨暟鎹簱涓父鐢ㄥ嚱鏁颁腑鐨勨滃悜涓嬪彇鏁村嚱鏁扳濄傚父鐢ㄦ潵鍙栦竴涓暟涓殑鏁存暟閮ㄥ垎銆Int鏄灏嗕竴涓鏁板鍚戜笅鍙栨暣涓烘渶鎺ヨ繎鐨勬暣鏁扮殑鍑芥暟銆備负鍙栨暣鍑芥暟銆傛剰鎬濇槸灏嗚杞崲鏁扮洿鎺ユ埅鍙栨暣鏁伴儴鍒嗭紝涓嶈繘琛屽洓鑸嶄簲鍏ヨ繍绠椼備緥濡傦細int(123.456);//鍙栧间负123 int(-123.456);//鍙栧间负124 int(1234.56);//鍙栧...
  • C璇█棰樼洰
    绛旓細鍙槸鍦ㄤ腑闂村紩鐢ㄦ槸鏀瑰彉浜嗕竴涓嬫暟鍊肩殑绫诲瀷锛屽綋浣犲湪鍚庨潰鐨勭▼搴忎腑鍐嶆鐢ㄥ埌a鏃讹紝a杩樻槸鏁村瀷鐨勩傚洖鍒伴鐩腑鏉ワ紝a+b=5锛屽己鍒惰浆鎹涓烘诞鐐瑰瀷锛屽嵆5.0锛岄櫎浠2鍚庣瓑浜2.5銆傦紙int锛墄绛変簬3锛岋紙int锛墆绛変簬2锛屾墍浠3%2锛屽嵆3闄や互2鐨勪綑鏁颁负1锛屾暣涓紡瀛愮殑鍊间负2.5+1锛岀瓑浜3.5 绗叓棰樹篃鏄己鍒惰浆鎹 ...
  • c璇█:int鍨鐨寮哄埗绫诲瀷杞崲鏄鎸夊洓鑸嶄簲鍏ュ悧
    绛旓細寮哄埗绫诲瀷杞崲int鐨勭粨鏋滃彧淇濈暀鏁存暟閮ㄥ垎锛屼笉鏄洓鑸嶄簲鍏ャ備緥濡傦細int 3.14锛岀粨鏋滀负3锛沬nt 3.58锛岀粨鏋滀篃涓3銆Int鏄灏嗕竴涓鏁板鍚戜笅鍙栨暣涓烘渶鎺ヨ繎鐨勬暣鏁扮殑鍑芥暟銆INT鏄鏁版嵁搴撲腑甯哥敤鍑芥暟涓殑鍙栨暣鍑芥暟锛屽父鐢ㄦ潵鍒ゅ埆涓涓暟鑳藉惁琚彟涓涓暟鏁撮櫎銆
  • c璇█鑻鍜宯鍧鏄痠nt鍨鍙橀噺,涓攛鍜宯鐨勫垵鍊煎潎涓5,鍒欒绠楄〃杈惧紡x+=n++鍚...
    绛旓細x=10锛宯=6 鍏蜂綋姝ラ濡備笅锛1銆佽繖涓〃杈惧紡绛変环浜巟=x+n++銆2銆.鍥犱负浠栦滑鍒濆鍊紉=5,n=5锛沶++鏄厛浣跨敤鍚庡鍔狅紝灏辨槸鍏堢敤n=5鍜寈鐩稿姞銆傚苟涓++杩愮畻绗︾殑浼樺厛绾уぇ浜=杩愮畻绗︺3銆亁+=n++绛変环浜巟=x+n++锛屾鏃秞=5+5++=10锛岃宯鍦ㄧ粡杩噉++涔嬪悗鍙樻垚n=6銆傛敞鎰忎簨椤癸細n++锛屼笌++n鐨勫尯鍒紝涓涓槸鍏...
  • 扩展阅读:c语言强制转换规则 ... c语言int取整规则 ... c语言float强制转换为int ... 怎么强制转换成int类型 ... c语言double强制转换int ... c语言强制转换inta+b%4 ... c强制类型转换float到int ... 强制类型转换规则int ... c语言int怎么转换为double ...

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