二進位制小數

2021-08-14 23:42:46 字數 795 閱讀 8428

題目描述

有乙個介於0和1之間的實數,型別為double,返回它的二進位制表示。如果該數字無法精確地用32位以內的二進位制表示,返回「error」。

給定乙個double num,表示0到1的實數,請返回乙個string,代表該數的二進位制表示或者「error」。

測試樣例:

0.625

返回:0.101

class bindecimal else

base = base/2;

if (res.size() > 32)

return

"error";

}return res;

}};

整數轉二進位制

//十進位制轉換為二進位制  

#include

#include

#include

#include

using

namespace

std;

string s;

int main(int argc,char * argv)

//字串反轉

獲得字串的開始位置

獲得字串的結尾位置

std::reverse(s.begin(),s.end());

cout

//const char *sss=s.c_str();

//cout<-":"-->")<}

return

0;

}

二進位制小數

要理解這道題,首先要知道什麼樣的小數可以轉化為二進位制形式,怎樣的小數不能被轉化為二進位制形式,自己測試幾組資料發現 1.可以轉化為二進位制的小數在有限次的乘二之後,小數部分會變零。舉個例子 0.625 2 1.25 1.25 2 2.5 2.5 2 5.0 5.0的小數部分變成了 0 2.不能轉化...

小數 二進位制

首先,給出乙個任意實數,整數部分用普通的二進位制便可以表示,這裡只說小數部分如何表示 例如0.6 文字描述該過程如下 將該數字乘以2,取出整數部分作為二進位制表示的第1位 然後再將小數部分乘以2,將得到的整數部分作為二進位制表示的第2位 以此類推,知道小數部分為0。特殊情況 小數部分出現迴圈,無法停...

十進位制小數轉為二進位制小數

整數和小數分別轉換.整數除以2,商繼續除以2,得到0為止,將餘數逆序排列.22 2 11 餘 0 11 2 5 餘 1 5 2 2 餘 1 2 2 1 餘 0 1 2 0 餘 1 所以22的二進位制是10110 小數乘以2,取整,小數部分繼續乘以2,取整,得到小數部分0為止,將整數順序排列.0.81...