首页
/
每日頭條
/
生活
/
16進制數到二進制轉換的簡單算法
16進制數到二進制轉換的簡單算法
更新时间:2026-05-12 21:18:09

今天我們來學習十進制轉為二進制的算法。

大家學習計算機或者編程,都會知道計算機處理數據都是基于二進制的,而我們在日常生活中都是使用十進制。如果要用計算機存儲數據,肯定要将十進制轉化為二進制,或者我們要查數據,要将二進制轉換為十進制,那麼問題來了:現在有一個十進制數,我們如何将其轉換為二進制數呢?

比如我們現在有一個數字:1024(預先給定的數字默認用十進制理解)。用十進制表示為:

16進制數到二進制轉換的簡單算法(學點算法七)1

1024的十進制表示

用二進制可表示為:

16進制數到二進制轉換的簡單算法(學點算法七)2

1024的二進制表示

可以發現一個規律:十進制或者二進制的最終表示形式1024或10,000,000,000可以取展開式的系數得到,而這個展開式公式裡面的數字都是以十進制表示的。我們隻要取到這些系數就可以得到二進制數的表示,那麼我們如何取到這些系數呢?

為了簡便和易于理解,我們以十進制來分析,可以發現,最後一項值是4,10的指數是0,即最後一項值本身就是系數本身,而展開式的其他項的指數都大于等于1,即意味着它們都可以被10整除,那麼最後一項就是整體值除以10後留下的餘數,即系數。通過除10取餘的方法,我們可以得到最後一項的系數4,那麼如何取到倒數第二項的系數呢?很簡單,除以兩次10就得到了倒數第二項的系數。其他項系數可以通過同樣的方法取到。那麼什麼時候結束呢?就是我們取不到任何系數的時候,就是我們上一次除完10得到的商為0,即表示最後一個系數被我們取到了,整個過程宣告終止。

整體流程如下:

①取倒數第一個系數:

16進制數到二進制轉換的簡單算法(學點算法七)3

②取倒數第二個系數:

16進制數到二進制轉換的簡單算法(學點算法七)4

③取倒數第三個系數:

16進制數到二進制轉換的簡單算法(學點算法七)5

④取倒數第四個系數:

16進制數到二進制轉換的簡單算法(學點算法七)6

這時,商變成了0,整個過程終止。

而最終得到數即是把每一步得到的數反過來排列,4201反過來即是1024。

二進制的原理同十進制,隻是把每個過程的除數換成2即可。

注意到我們将每輪求得的結果值反過來排列才是最後的結果值,這種逆序輸出的性質剛好對應了棧的後進先出的特性。索引我們可以使用棧來保存計算過程中求得的系數,所有系數求解完畢後再逆序輸出即可。

代碼實現如下:

/** * 十進制轉為二進制 * * @return 十進制數對應的二進制數 */ public static String decimal2BinaryString(int decimal) { // 如果十進制為0,則直接返回0 if (decimal == 0) { return "0"; } // 使用棧來保存先求出來的系數 Deque<Integer> stack = new ArrayDeque<>(); int r = decimal; int m; while (r != 0) { // 求當前最後一個系數 m = r % 2; // 求當前商,并賦值回r,做下一輪運算 r = r >> 1; // 将當前系數保存到棧中 stack.push(m); } // 依次将保存在棧中的數據取出,拼接成二進制 StringBuilder builder = new StringBuilder(stack.size()); while (!stack.isEmpty()) { builder.append(stack.pop()); } // 返回二進制字符串 return builder.toString(); }

測試代碼如下:

System.out.println(decimal2BinaryString(1024));

輸出結果如下:

10000000000

符合我們的預期。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
白灼皮皮蝦
白灼皮皮蝦
白灼皮皮蝦?皮皮蝦500g,蔥适量,姜适量,蒜适量,生抽适量,糖适量,白酒适量,橄榄油适量,皮皮蝦沖洗幹淨,我來為大家講解一下關于白灼皮皮蝦?跟着小編一起來看一看吧!白灼皮皮蝦皮皮蝦500g,蔥适量,姜适量,蒜适量,生抽适量,糖适量,白酒适...
2026-05-12
父母帶五胞胎去哪裡
父母帶五胞胎去哪裡
随着現在科技的發展,越來越多的家庭裡面會生出雙胞胎,甚至是龍鳳胎。這要是之前會覺得這種概率是非常小的,現在應該是比較常見的。對于這種家庭除去了家裡新增的成員的喜悅外,當然也有不好的,就是孩子的照顧問題,一開始2個孩子要帶對于父母來說是非常的...
2026-05-12
家庭裝修使用哪種踢腳線比較好
家庭裝修使用哪種踢腳線比較好
買了房子之後要改造室内的空間,就需要去做裝修,裝修的時候有很多的項目,其中踢腳線是什麼就令人非常的好奇。在裝修的時候如果用到踢腳線的話,會特别的關注它裝修過程中要注意的事項,來為大家介紹裝修踢腳線的注意事項。一、踢腳線是什麼踢腳線就是腳能夠...
2026-05-12
人像攝影怎麼設置光圈快門感光度
人像攝影怎麼設置光圈快門感光度
前言:曝光三要素:光圈、快門、感光度。但對于初學攝影攝影的人來講,大家都有急切的心理那就是先去學習構圖,這點也很容易理解,網上流傳着很多關于攝影小白可以直接使用的構圖技巧的視頻,大家看了心血澎湃,心想自己根據網上的教程在現實中就可以拍出那種...
2026-05-12
葛根粉可以加紅糖一起吃嗎
葛根粉可以加紅糖一起吃嗎
葛根粉可以加紅糖一起吃嗎?葛根粉可以和紅糖一起喝具有清熱除煩,生津止渴的功效,紅糖能潤肺健脾,活血破瘀紅糖的溫潤之性,還可以緩解葛根粉寒涼的特性,以免脾胃受到損傷葛根粉和紅糖一起喝,還能夠起到美容養顔的功效,能保護細胞免受氧化損傷,能促進體...
2026-05-12
Copyright 2023-2026 - www.tftnews.com All Rights Reserved