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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++十进制转二进制_二进制与十进制如何互相转换?

發布時間:2023/12/4 c/c++ 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++十进制转二进制_二进制与十进制如何互相转换? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

正整數的十進制轉換二進制

將一個十進制數除以二,得到的商再除以二,依此類推直到商等于一或零時為止,倒取除得的余數,即換算為二進制數的結果。只需記住要點:除二取余,倒序排列。

由于計算機內部表示數的字節單位都是定長的,以2的冪次展開,或者8位,或者16位,或者32位....。于是,一個二進制數用計算機表示時,位數不足2的冪次時,高位上要補足若干個0。

eg: 125 轉換為二進制

二進制轉換為十進制

二進制轉十進制的轉換原理:從二進制的右邊第一個數開始,每一個乘以2的n次方,n從0開始,每次遞增1。然后得出來的每個數相加即是十進制數。

eg:? 0111 1101 轉換為二進制

從右邊開始每一個乘以2的n次方,n從0開始

0111 1101

1?? ---->? ??2^0? ? ????2的0次方

0???---->? ??0? ? ????????因為為0,所有取0,如果為1 ,應該為2^1

1???---->? ??2^2?? ?????2的2次方

1???---->? ??2^3? ? ????2的3次方

1???---->? ??2^4? ? ????2的4次方

1???---->? ??2^5? ??????2的5次方

1???---->? ??2^6? ??????2的6次方

0???---->? ??0? ? ????????因為為0,所有取0,如果為1 ,應該為2^7

最后將所有項相加:1+0+4+8+16+32+64+0 = 125

十進制轉換為二進制

十進制轉二進制分為整數轉二進制,和小數轉二進制

整數轉二進制

  • 采用"除2取余,逆序排列"法:

1.首先用2整除一個十進制整數,得到一個商和余數
2.然后再用2去除得到的商,又會得到一個商和余數
3.重復操作,一直到商為小于1時為止
4.然后將得到的所有余數全部排列起來,再將它反過來(逆序排列),切記一定要反過來!
  • 假設我們現在需要將42轉為二進制,那我們怎么做呢,如下圖所示:

小數轉二進制

  • 采用"乘2取整,順序排列"法:

1.用2乘十進制小數,可以得到積,將積的整數部分取出
2.再用2乘余下的小數部分,又得到一個積,再將積的整數部分取出
3.重復操作,直到積中的小數部分為零,此時0或1為二進制的最后一位,或者達到所要求的精度為止
  • 例如將0.125轉換為二進制:

0.125 * 2 = 0.25 ------0

0.25 * 2 = 0.5 ------0

0.5 * 2 = 1.0 ------1

當小數部分為0就可以停止乘2了,然后正序排序就構成了二進制的小數部分:0.001
  • 如果小數的整數部分有大于0的整數時,將整數部分和小數部分先單獨轉為二進制,再合在一起就可以了,例如:

假設要將8.125 轉換為二進制

現將8轉為二進制:得到1000
再將0.125轉為二進制:得到0.001

合并后為1000.001

二進制轉換為十進制

二進制轉為十進制要從右到左用二進制的每個數去乘以2的相應次方,小數點后則是從左往右。

如果首位是0就表示正整數,如果首位是1則表示負整數,正整數可以直接換算,負整數則需要先取反再換算。

因為計算機內部表示數的字節單位是定長的。如8位、16位、32位。所以位數不夠時,高位補零。

  • 如要想二進制00101010轉為十進制,因為以0開頭,所以這是正整數,計算如下所示:

(0 * 2的零次方) + (1* 2的一次方)+ (0 * 2 的二次方)+(1 * 2的三次方) +(0 * 2的四次方) +(1* 2的五次方) + (0 * 2的六次方) + (0 * 2的7次方) = 0 + 2 + 0 + 8 + 0 + 32 + 0 + 0 = 42
  • 如果11101011想轉為*負的十進制,因為最高位是1,所以先減一取反 00010101,然后計算出00010101對應的十進制為21,所以11101011最終對應的十進制為 -21。

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。