日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++十进制转二进制_二进制与十进制相互转换的原理

發(fā)布時間:2025/3/15 c/c++ 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++十进制转二进制_二进制与十进制相互转换的原理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

┇鋪墊

二進制,簡單來說,是一種運算規(guī)則,每一位達到“二”就進一位,故稱為“二” “進” 制。在我們?nèi)粘S嬎憷锩恳晃坏健笆边M一位的十進制,類比一下(如9+1=10),在二進制里的“進位”,1+1應(yīng)該等于10(“個位”2變0進“十位”1)。

但有一點得注意,上面二進制運算結(jié)果“10”在十進制里還是二,而不是十。

┇正題

在學(xué)習(xí)二進制與十進制相互轉(zhuǎn)換時,會學(xué)到下面的轉(zhuǎn)換方法:


  • 十進制轉(zhuǎn)二進制

將十進制表示的數(shù)除以二取余數(shù),再將上次運算的商除以二取余數(shù),不斷重復(fù),直到商為0結(jié)束。最后把余數(shù)從后往前依次排列出新的數(shù)。

例如:10

10÷2=5······0(?)

5÷2=2······1(?)

2÷2=1······0(?)

1÷2=0······1(?)

把余數(shù)從后往前排,便是1010(????)


  • 二進制轉(zhuǎn)十進制

將二進制里的數(shù)從最左位開始分別乘以2?(n表示這一位的右邊還有幾位,最后一位n=0),最后把 各個 位計算后的結(jié)果 相加。

例如:1010

1×23 + 0×22 + 1×21 + 0×2? = 10


那么問題來了,為什么這樣計算就可以達到效果呢?以及為什么要有“從后往前”,“乘以2?”這些奇怪的方式?

有一種思維方式叫比較推理

我們拿平時最熟悉的十進制來說。

比如“1234”,我們可以把它變形為1×103+2×102+3×101+4×10?,結(jié)果還是1234。那么剛剛二進制的“1010”表示的1×23 +0×22+1×21+0×2? 和上面的式子非常相似。不妨假設(shè),二進制轉(zhuǎn)換十進制的運算實質(zhì)和這個一樣。

一個非負(fù)整數(shù)可以理解為有多少個1相加

在1×103+2×102+3×101+4×10?這個式子中,103是表示個位進位到千位要加1的個數(shù)多少,如3000就可以表示為3×103,或者說有3000個1相加。同理后面的也是如此。

那么不難想象在1×23 +0×22+1×21+0×2?里23,22,21,2?也表示是從個位進位到該位要加1的個數(shù)多少。

再詳細(xì)一點

二進制 0 1 10 11 100 101 110 111 1000 ··
十進制0 1 2 3 4 5 6 7 8 ···

二進制中,從一位到兩位要加2個1,從一位到三位要加4(22)個1,從一位到四位要加8(23)個1,這很容易就可以推出后面的情況。而且很容易理解,因為每一位從0到1再到0要經(jīng)過兩次,那么使這一位變化的要計算兩次。


在十進制轉(zhuǎn)二進制中,其實是對上面二進值轉(zhuǎn)十進制的逆向運算

如之前的10÷2=5······0

我們可以把10改寫成1×23 +0×22+1×21+0×2?,那么就可以很容易明白,在除以2后,10變成了1×22 +0×21+1×2? + 0 前面的部分就是商5,后面的0就是余數(shù)。再把1×22 +0×21+1×2?除以2,5就變了1×21+0×2? + 1,前面部分商就是2,后面的1就是余數(shù)。同理后面類似

這些余數(shù)之所以可以表示為二進制表示中相對應(yīng)位的值,就是因為將這些個值反過去依次乘二乘回去就會變成原來式子。

至于為何把余數(shù)“從后往前”排列,就是因為這是在二進制轉(zhuǎn)十進制的運算結(jié)構(gòu)基礎(chǔ)上而來的。越先余的數(shù),除二的次數(shù)越少,那么它變化原來的情況乘二次數(shù)就越少,那么根據(jù)二進制轉(zhuǎn)十進制里的運算結(jié)構(gòu),就排在最后邊。


這就是我對于二進制與十進制相互轉(zhuǎn)換的理解,其目的就是為了讓大家熟悉這之間的進位的實質(zhì)與這些公式背后的緣由。當(dāng)然這個其實并不全面,這里只涉及到非負(fù)整數(shù)的情況,至于其它方面,則還需要其他的東西來進行,這里就不再寫了(我懶)

這是我粗糙很水的第一篇文章,望大佬批評

總結(jié)

以上是生活随笔為你收集整理的c++十进制转二进制_二进制与十进制相互转换的原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。