這是很簡單的...
unsigned int number;
char str[33];
int i;
int s;
/* Read some 32-bit binary number in character representation in str. */
Do some stuff.
/* Convert from string to binary. */
number = 0;
s = strlen(str);
for (i = 0; i < s; i++)
{
if (str[i] == 0x00) break;
if (str[i] == '0')
{
number |= 1;
number << 1;
}
if (str[i] == '1')
{
number &= 0xFFFFFFFE;
number << 1;
}
}
一般情況下,你可以找到這在谷歌或在你的教科書。所以你這次免費得到了這個。
編輯:
我注意到你也提到了float或double。這些是由IEEE-754標準定義的複雜數據類型。如果二進制字符串已經處於浮點表示形式,那麼你可以使用一個聯合來從一個unsigned int中獲得一個浮點類型。代碼如下:
union float_conversion_t
{
unsigned int i[2];
float f;
double d;
};
在這裏你填寫一個或兩個整數,然後讀取float或double值。您可能需要根據機器的字大小(32位,64位或其他)調整陣列的大小。
所以,你告訴你沒有通過搜索得到答案(好的,好的,提示,至少)? –
我*誠實*不能相信谷歌搜索相關的事情**從來沒有**導致你['strtol()'](http://pubs.opengroup.org/onlinepubs/7908799/xsh/strtol.html) ... –
在搜索框中鍵入「在二進制中將二進制轉換爲十進制」。收到了同樣的問題噸已提出的問題 –