日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

十进制数和二进制数之间的转换

發布時間:2025/6/15 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 十进制数和二进制数之间的转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? ? ? ? ? 十進制轉換為二進制數需要利用除k取余法,其中有循環和遞歸二中算法,下面看一下代碼:

遞歸版:

#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h>//將一個十進制的數轉換成一個二進制的數 void chu_k(int a,char str[],int &last) {int k = 0;int m = 0;int i = 0;if(a <= 1){last = a;//保留此時的余數return;}else{m = a % 2;str[last++] = m + '0';chu_k(a/2,str,last);} }int main() {int a = 123;int length = 0;char str[20] = {0};int last = 0;chu_k(a,str,last);length = strlen(str);str[length] = last + '0';length = strlen(str)-1;int i = length;for(;i>=0;i--){printf("%c",str[i]); }return 0; }

打印:1111011

在參數傳值的時候是傳整型數還是傳字符串取決于傳哪種更方便,最后在根據需要對整型和字符串之間相互轉換,chu_k函數是先保存余數在遞歸,所有最后打印出來的一個逆序的,最后要把結果倒敘輸出才是正確的。

?

循環版:

int main() {int c[32] = {0};int i = 0;int n = 123;do{c[i++] = n%2;n /= 2;}while(n != 0);i = i - 1;for(;i>=0;i--){printf("%d",c[i]);}return 0; }

循環版用的是整型數組,比用字符串數組略簡單,而且循環比遞歸更容易理解,看起來更簡單。

?

看下二進制轉十進制:

#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h>//將一個十進制的數轉換成一個二進制的數void func(char str[],int &result) {int length = strlen(str);int i = length-1;int m = 0;for(;i >=0;i--){if(str[i]){m = m + pow(2,length-i-1) * (str[i] - '0');}}result = m; }int main() {int result = 0;char str[]="1111011";func(str,result);printf("last=%d\n",result);return 0; }

打印:123

這個還需要大家細讀二進制轉十進制的數學方法,程序也是按照數學方法寫的。

注意這張圖中1010對應字符串來說是逆序的

?

總結

以上是生活随笔為你收集整理的十进制数和二进制数之间的转换的全部內容,希望文章能夠幫你解決所遇到的問題。

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