二進(jìn)制轉(zhuǎn)十進(jìn)制的算法是:將二進(jìn)制數(shù)的每一位與 2 的對(duì)應(yīng)次冪相乘,然后將這些乘積相加。
例如:二進(jìn)制數(shù)1011轉(zhuǎn)十進(jìn)制,則:
(12^3) + (02^2) + (12^1) + (12^0) = 8 + 0 + 2 + 1 = 11
因此,1011(二進(jìn)制) = 11(十進(jìn)制)。下面給出各個(gè)主流編程語言的二進(jìn)制轉(zhuǎn)十進(jìn)制算法代碼范例。
1、Python二進(jìn)制轉(zhuǎn)十進(jìn)制的算法代碼:
在 Python 中,可以使用 int() 函數(shù)將二進(jìn)制字符串轉(zhuǎn)換為十進(jìn)制整數(shù):
binary_num = “1011”
decimal_num = int(binary_num, 2)
print(decimal_num) # 11
也可以使用以下方法:
binary_num = “1011”
decimal_num = 0
binary_num = binary_num[::-1]
for i in range(len(binary_num)):
decimal_num += int(binary_num[i])*(2**i)
print(decimal_num) # 11
2、C語言二進(jìn)制轉(zhuǎn)十進(jìn)制的算法代碼:
在 C 語言中,可以使用 strtol() 函數(shù)將二進(jìn)制字符串轉(zhuǎn)換為十進(jìn)制整數(shù):
#include <stdio.h>
#include <stdlib.h>
int main() {
char binary_num[] = “1011”;
int decimal_num;
decimal_num = strtol(binary_num, NULL, 2);
printf(“%d\n”, decimal_num); // 11
return 0;
}
3、C++語言二進(jìn)制轉(zhuǎn)十進(jìn)制的算法代碼:
在 C++ 中,可以使用 stoi() 函數(shù)將二進(jìn)制字符串轉(zhuǎn)換為十進(jìn)制整數(shù):
#include <iostream>
int main() {
std::string binary_num = “1011”;
int decimal_num;
decimal_num = std::stoi(binary_num, 0, 2);
std::cout << decimal_num << std::endl; // 11
return 0;
}
4、Java二進(jìn)制轉(zhuǎn)十進(jìn)制的算法代碼:
在 Java 中,可以使用 Integer.parseInt() 函數(shù)將二進(jìn)制字符串轉(zhuǎn)換為十進(jìn)制整數(shù):
String binary_num = “1011”;
int decimal_num;
decimal_num = Integer.parseInt(binary_num, 2);
System.out.println(decimal_num); // 11
算法愛好者也可以自己寫,代碼如下:
String binary_num = “1011”;
int decimal_num = 0, i = 0, rem, base = 1;
int len = binary_num.length();
for (i = len – 1; i >= 0; i–) {
rem = binary_num.charAt(i) – ‘0’;
decimal_num += rem * base;
base = base * 2;
}
System.out.println(decimal_num); // 11
5、C#二進(jìn)制轉(zhuǎn)十進(jìn)制的算法代碼:
在 C# 中,可以使用 Convert.ToInt32() 函數(shù)將二進(jìn)制字符串轉(zhuǎn)換為十進(jìn)制整數(shù):
string binary_num = “1011”;
int decimal_num;
decimal_num = Convert.ToInt32(binary_num, 2);
Console.WriteLine(decimal_num); // 11
6、Visual Basic二進(jìn)制轉(zhuǎn)十進(jìn)制的算法代碼:
在 Visual Basic 中,代碼如下,當(dāng)然,你也可以用 Convert.ToInt32() 函數(shù)
Dim binary_num As String = “1011”
Dim decimal_num As Integer = 0, i As Integer = 0, rem As Integer, base As Integer = 1
Dim len As Integer = binary_num.Length
For i = len – 1 To 0 Step -1
rem = binary_num(i) – “0”c
decimal_num += rem * base
base = base * 2
Next
Console.WriteLine(decimal_num) ‘ 11
7、JavaScript二進(jìn)制轉(zhuǎn)十進(jìn)制的算法代碼:
在 JavaScript 中,可以使用 parseInt() 函數(shù)將二進(jìn)制字符串轉(zhuǎn)換為十進(jìn)制整數(shù):
let binary_num = “1011”;
let decimal_num;
decimal_num = parseInt(binary_num, 2);
console.log(decimal_num); // 11
8、PHP二進(jìn)制轉(zhuǎn)十進(jìn)制的算法代碼:
在 PHP 中,可以使用 bindec() 函數(shù)將二進(jìn)制字符串轉(zhuǎn)換為十進(jìn)制整數(shù):
$binary_num = “1011”;
$decimal_num = bindec($binary_num);
echo $decimal_num; // 11
或者:
$binary_num = “1011”;
$decimal_num = 0;
$i = 0;
$len = strlen($binary_num);
for ($i = $len – 1; $i >= 0; $i–) {
$rem = $binary_num[$i];
$decimal_num += $rem * pow(2, $len – $i – 1);
}
echo $decimal_num; // 11
9、SQL語言二進(jìn)制轉(zhuǎn)十進(jìn)制的算法代碼:
在 SQL 中,可以使用 CAST 或 CONVERT 函數(shù)將二進(jìn)制字符串轉(zhuǎn)換為十進(jìn)制整數(shù)。
例如,使用 CAST 函數(shù):SELECT CAST(1011 AS UNSIGNED) AS decimal_num;
使用 CONVERT 函數(shù):SELECT CONVERT(UNSIGNED, 1011) AS decimal_num;
注意:這里的 1011 是二進(jìn)制字符串,在使用 CAST 或 CONVERT 函數(shù)時(shí)需要將其轉(zhuǎn)換為 UNSIGNED 類型。
需要注意的是,這只是在單純的查詢數(shù)據(jù)庫中存儲(chǔ)的二進(jìn)制字符串的情況下這樣使用,如果你需要在sql中進(jìn)行運(yùn)算或者處理,可能需要使用其他的函數(shù)或者語句來實(shí)現(xiàn),可能需要具體情況具體分析。
以上語言排名不分先后,如果有不在里面的其它編程語言,以此類推即可。
★關(guān)于WorkWin公司電腦監(jiān)控軟件★
WorkWin的使命是打造Work用途的Windows 電腦系統(tǒng),有效規(guī)范員工上網(wǎng)行為,讓老板知道員工每天在做什么(監(jiān)控包括屏幕、上網(wǎng)在內(nèi)的一舉一動(dòng)),限制員工不能做什么(禁止網(wǎng)購、游戲、優(yōu)盤等)。
WorkWin基于純軟件設(shè)計(jì),非常容易使用,無需添加或改動(dòng)任何硬件,使用一臺(tái)管理機(jī)監(jiān)控全部員工機(jī)電腦。歷經(jīng)南京網(wǎng)亞十余年精心打造,此時(shí)此刻每天都有成千上萬企業(yè)電腦正在運(yùn)行WorkWin,選擇WorkWin選擇“贏”。
WorkWin監(jiān)控首頁 短視頻講解 下載免費(fèi)試用版
版權(quán)所有,南京網(wǎng)亞計(jì)算機(jī)有限公司 。本文鏈接地址: 二進(jìn)制轉(zhuǎn)十進(jìn)制算法各編程語言代碼大全,值得收藏