进制转换 二进制怎么转化成十进制?

\u8bf7\u6559\u4e0b\u3002\u3002\u30026\u8fdb\u5236\u600e\u4e48\u8f6c\u636210\u8fdb\u5236\uff1f\u6bd4\u598215\u7b49\u4e8e6\u8fdb\u5236\u7684\u591a\u5c11\uff1f

6\u8fdb\u5236\u6362\u5341\u8fdb\u5236\uff0c\u662f\u7b2ci\u4f4d\u4e58\u4ee56\u7684\uff08i-1\uff09\u6b21\u65b9\uff0c\u800c\u540e\u505a\u548c\uff1b\u598212\uff086\u8fdb\u5236\uff09\u7b49\u4e8e1*6^1+2*6^0=8\uff0810\u8fdb\u5236\uff09\uff1b
\u5341\u8fdb\u5236\u63626\u8fdb\u5236\uff0c\u662f\u9664\u516d\u53d6\u4f59\u53cd\u5e8f\u6cd5\u89e3\u51b3\uff1b\u598215\uff08\u5341\u8fdb\u5236\uff09\u7b49\u4e8e15/6\u55462\u4f593\uff0c2/16\u55460\u4f592\uff0c\u6240\u4ee5\u7b49\u4e8e23\uff086\u8fdb\u5236\uff09\u3002

06\u5982\u4f55\u5feb\u901f\u7684\u5c06\u4e8c\u8fdb\u5236\u8f6c\u6362\u6210\u5341\u8fdb\u5236

1.一个字节占8位,sizeof(int)表示计算出int占用几个字节,字节数*8就表示int总共多少位了。

2.这个的确是用了递归,但是完全没必要用递归,一个for循环就可以实现了,并且比递归直观。

3.对于putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1)));这句代码的理解,LZ首先要了解一些必要的操作

符,如:&、<<、>>。

A:&表示将&左右两边的数据进行按位与,1 & 1 = 1, 1 & 0 = 0,例子:
byte a = 2, b = 3, c;
c = a & b; //则c = 2,为什么捏?这个要转换为二进制就一目了然了
2的二进制为:00000010
3的二进制为:00000011
按位与之后: 00000010 = 2

B:<<、>>表示左移和右移操作,也是针对位进行操作的,例子:
byte a = 2;
a = a << 2; //表示a进行左移两位,则a = 8,用二进制表示为:
2的二进制为:00000010
左移两位后: 00001000 = 8。>>也类似这样。

好了,开始讲解putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1)));的意思。
假设我们输入了一个整数3,int位数为16(VC编译器将int设置为4个字节,即32位),
因此x = 3,n = 16
按照括号优先级运算,这句代码应先执行1 << (n - 1),
其实就是将1左移15位,用二进制表示为:
1的二进制为:0000000000000001
左移15位后: 1000000000000000
之所以用1先进行左移,是因为1左移后,
所有位数中有且只有一个1,再进行&操作,
就可以将1所在的位数提取出来,因为任何数 & 1 = 任何数,
提取出来后再将这个位右移那么多位,那么就知道这个位是0还是1了
此时又执行到(x & (1 << (n - 1))),x = 3,二进制之~~
3的二进制为: 0000000000000011
左移15位后的1:1000000000000000
按位与后: 0000000000000000 = 0
此时又执行到(x & (1 << (n - 1))) >> (n-1)),简化为0 >> (16 - 1)
表示将0右移15位,最后结果还是0,
那么这个0表示什么呢?其实就表示x的最高位二进制值,
putchar('0' + 0),表示将x的最高位转换为字符,并输出
最后调用递归,分别将x的次高位一直到最低位输出。

哎,那个累,吹了一大堆,不知道LZ理解没

  • 浜杩涘埗,鍏繘鍒,鍗佽繘鍒,鍗佸叚杩涘埗鐨杞崲
    绛旓細杞崄杩涘埗 浜岃繘鍒讹紙鎴栧叓杩涘埗鎴栧崄鍏繘鍒讹級鏁板啓鎴2锛堟垨8鎴16锛夌殑鍚勬骞傜殑鍜 濡傛灉鏈夊皬鏁扮偣锛屽皬鏁扮偣宸﹁竟绗竴浣0娆″箓锛屼緷娆″悜涓よ竟澧炲姞锛屽彧鏈夊線鍙宠竟涓鸿礋娆″箓 娌℃湁灏忔暟鐐癸紝鍒欏悜宸﹁竟渚濇澧炲姞 浜岃繘鍒惰浆鍗佽繘鍒 姣斿100011 鍗1x25+0x24+0x23+0x22+1x21+1x20 =32+0+0+0+2+1 =35 姣斿101101.101 鍗...
  • 10杩涘埗鍜屼簩杩涘埗涔嬮棿鎬庝箞杞崲
    绛旓細10杩涘埗鍜屼簩杩涘埗涔嬮棿鐨杞崲鍒嗗洓姝ワ細1銆佹妸鍗佽繘鍒朵腑鐨勬暣鏁伴儴鍒嗚浆涓轰簩杩涘埗銆傛妸鍗佽繘鍒舵暟锛岀敤浜屽洜寮忓垎瑙o紝鍙栧畠鐨勪綑鏁般備緥濡傦紝101/2=50锛屼綑鏁颁负1锛50/2=25锛屼綑鏁颁负0锛25/2=12锛屼綑鏁颁负1锛12/2=6锛屼綑鏁颁负0锛6/2=3锛屼綑鏁颁负0锛3/2=1锛屼綑鏁颁负1锛1/2=0锛屼綑鏁颁负1銆2銆佹妸鐩稿簲鐨勪綑鏁颁粠浣庡悜楂...
  • 杩涘埗鐨勬崲绠
    绛旓細浜岃繘鍒跺氨鏄敱1鍜0缁勬垚锛涘叓杩涘埗灏辨槸0锛7缁勬垚锛涘崄杩涘埗灏辨槸1锛9浜嗭紱鍗佸叚杩涘埗灏辨槸0锛岶缁勬垚銆傚畠浠殑鎹㈢畻鍏崇郴灏辨槸锛氫簩杩涘埗鎹㈢畻鎴愬崄杩涘埗锛涙瘮濡傦細锛堜簩杩涘埗锛1锛0锛1锛0锛1锛0锛1鎹㈡垚鍗佽繘鍒跺氨鏄1脳2^6锛0脳2^5锛1脳2^4锛0脳2^3锛1脳2^2+0脳2^1+1脳2^0锛85锛涘叓杩涘埗杞崲鎴愬崄杩涘埗锛涙瘮濡...
  • 浠涔堟槸杩涘埗,鍚勪釜杩涘埗鐨杞崲鍏紡鏄粈涔
    绛旓細绠鍗曡锛孨杩涘埗灏辨槸鈥滈杩1锛屽1褰揘銆傗漀杩涘埗杞崲涓10杩涘埗锛岀洿鎺ュ啓鎴愬椤瑰紡璁$畻灏卞彲浠ヤ簡锛屽氨鍍 253锛10杩涘埗锛=2*10^2+5*10+2 253(8杩涘埗)=2*8^2+5*8+3=171(10杩涘埗)253(16杩涘埗)=2*16^2+5*16+3=595(10杩涘埗)110111(2杩涘埗)=1*2^5+1*2^4+0*2^3+1*2^2+1*2^1+1=55 10...
  • 杩涘埗鎹㈢畻
    绛旓細杩涘埗鐨勬崲绠楁柟娉1.鍗佽繘鍒讹細 閮芥槸浠0-9杩欎節涓暟瀛楃粍鎴愶紝涓嶈兘浠0寮澶淬2.浜岃繘鍒讹細 鐢0鍜1涓や釜鏁板瓧缁勬垚銆3.鍏繘鍒讹細 鐢0-7鏁板瓧缁勬垚锛屼负浜嗗尯鍒嗕笌鍏朵粬杩涘埗鐨勬暟瀛楀尯鍒紝寮澶撮兘鏄互0寮濮嬨4.鍗佸叚杩涘埗锛氱敱0-9鍜孉-F缁勬垚銆備负浜嗗尯鍒嗕簬鍏朵粬鏁板瓧鐨勫尯鍒紝寮澶撮兘鏄互0x寮濮嬨備竴銆佸崄杩涘埗杞崲涓轰簩杩涘埗銆佸叓...
  • 浜杩涘埗涓庡崄鍏繘鍒剁殑杞崲鏂规硶
    绛旓細浜杩涘埗涓庡崄鍏繘鍒剁殑杞崲鏂规硶濡備笅锛1銆佷簩杩涘埗杞崄鍏繘鍒讹細浠庝簩杩涘埗鐨勫皬鏁扮偣涓哄垎鐣岀偣锛屽悜宸︼紙鍚戝彸锛夋瘡鍥涗綅鍙栨垚涓浣嶃傛帴鐫灏嗚繖鍥涗綅浜岃繘鍒舵寜浣嶆潈鐩稿姞锛屽緱鍒扮殑鏁板氨鏄竴浣嶅崄鍏繘鍒舵暟銆傜劧鍚庢寜椤哄簭杩涜鎺掑垪锛屽皬鏁扮偣鐨勪綅缃笉鍙橈紝寰楀埌鐨勬暟瀛楀氨鏄垜浠墍姹傜殑鍗佸叚杩涘埗鏁般2銆佸崄鍏繘鍒惰浆浜岃繘鍒讹細鍒嗗埆鐢ㄦ瘡浣嶅崄鍏...
  • 鍗杩涘埗杞寲浜岃繘鍒舵柟娉
    绛旓細灏嗗崄杩涘埗杞崲涓轰簩杩涘埗鐨勬柟娉曟湁闄2娉曘佺煭闄ゆ硶鍜屾煡琛ㄦ硶銆1銆侀櫎2娉曪細灏嗗崄杩涘埗鏁伴櫎浠2锛屽緱鍒板晢鍜屼綑鏁帮紙0鎴1锛夛紝鐒跺悗鎶婂晢缁х画闄や互2锛岀洿鍒板晢涓0涓烘銆傛渶鍚庢妸鎵鏈変綑鏁版寜浠庝笂鍒颁笅鐨勯『搴忔帓鍒楄捣鏉ワ紝鍗冲彲寰楀埌鐩稿簲鐨勪簩杩涘埗鏁般備緥濡傦紝557锛堝崄杩涘埗锛=1000101101锛堜簩杩涘埗锛夈傝繖绉嶆柟娉曢渶瑕佸娆¤繘琛岄櫎娉曡繍绠楋紝姣旇緝...
  • 杩涘埗杞崲
    绛旓細鎴戜滑甯哥敤鐨勮繘鍒舵湁锛氫簩杩涘埗銆佸叓杩涘埗銆佸崄杩涘埗銆佸崄鍏繘鍒 浜岃繘鍒讹細 0-1 鍏繘鍒讹細 0-7 鍗佽繘鍒讹細 0-9 鍗佸叚杩涘埗锛 0-f 1銆佸崄杩涘埗杞崲涓轰簩杩涘埗   锛1锛夈佹暣鏁伴儴鍒嗭細闄2鍙栦綑娉曪紝鍗虫瘡娆″皢鏁存暟閮ㄥ垎闄2锛岀洿鍒板晢涓0涓烘锛屽皢浣欐暟浠庡悗寰鍓嶆暟鍗虫槸浜岃繘鍒舵暟   锛...
  • 浜杩涘埗銆佸崄杩涘埗銆佸崄鍏繘鍒朵箣闂存庝箞鎹㈢畻?
    绛旓細浜杩涘埗銆佸崄杩涘埗銆佸崄鍏繘鍒朵箣闂杞崲鏂规硶濡備笅锛1.鎸夛紙DEC锛夊彲鍒囨崲鑷冲崄杩涘埗妯″紡锛涙寜锛圚EX锛夊彲鍒囨崲鑷冲崄鍏繘鍒舵ā寮忥紱鎸夛紙BIN锛夊彲鍒囨崲鑷充簩杩涘埗妯″紡锛涙寜In锛圤CT锛夊彲鍒囨崲鍒板叓杩涘埗锛2.鎴栬呭湪鍦ㄦ暟鍊煎悗杈撳叆鐗瑰畾鐨勫懡浠わ紝鎸囧畾璇ユ暟鍊肩殑杩涘埗锛宒浠h〃鍗佽繘鍒讹紝h浠h〃鍗佸叚杩涘埗锛宐浠h〃浜岃繘鍒讹紝o浠h〃鍏繘鍒讹紱3.鍗佽繘鍒惰浆浜...
  • 鍚勭杩涘埗杞崲鏂规硶
    绛旓細鈶犲崄杩涘埗杞崲鎴愪簩杩涘埗锛氬崄杩涘埗鏁存暟杞崲鎴愪簩杩涘埗鏁存暟閫氬父閲囩敤闄2鍙栦綑娉曪紝灏忔暟閮ㄥ垎涔2鍙栨暣娉曘備緥濡傦紝灏(30)10杞崲鎴愪簩杩涘埗鏁般傚皢(30)10杞崲鎴愪簩杩涘埗鏁 2| 30 鈥.0 ---鏈鍙充綅 2 15 鈥.1 2 7 鈥.1 2 3 鈥.1 1 鈥.1 ---鏈宸︿綅 鈭 (30)10=锛11110)2 灏(30)10杞崲鎴愬叓銆佸崄鍏繘鍒...
  • 扩展阅读:十六进制在线转换器 ... 万能进制转换器 ... 进制转换计算器 ... 十转二进制计算器 ... 十六进制对照表 ... 进制转换表大全 ... 二进制转换器在线 ... 十进制转化为二进制 ... 进制转换公式大全 ...

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