十進位制與二進位制之間的轉換(棧與佇列的應用)

2021-07-25 07:22:37 字數 885 閱讀 4897

本文章只為學習棧和佇列。請勿用於其他用途。

一、         實驗環境

vc6.0

二、         實驗目的

設計實現十進位制數與二進位制數的數制轉換程式,要求進行某種數制轉換後,輸入相應的格式的數值(可以是混合小數的形式),給出相應進製的數值。熟練掌握佇列相關操作、

三、         實驗內容

1. 用c語言實現佇列的儲存結構(迴圈佇列或鏈佇列);

2.實現佇列的基本操作的有關演算法;(建空隊、進隊、出隊、判隊空等);

3.利用佇列(有必要時結合棧)解決二進位制數與十進位制數之間的相互轉換)。

四、         資料結構與演算法思想描述

(1)   將使用者輸入的數用split()這個函式按整數部分,小數部分分別用放在,s1,s2,(十化二)s3,s4(二化十)

(2)二進位制轉換為十進位制數:根據有理式的按權展開式,把二進位制的權(2的多少次冪)與數字值(0,1)相乘後再相加。函式操作為change3(),change4()在使用相應的棧和佇列進行操作。

(3)十進位制數化二進位制數:整數部分用「除二取餘「法,將數除以2,將餘數放入棧,商再除以2,重複。。直至商為0。小數部分用「乘二取整」法,數乘2,然後取整、放入佇列裡,小數部分繼續,本函式6次結束。函式體現change1(),change2()

(4)主函式分類呼叫hange1(),change2()change3(),change4().迴圈選單(選項為0,1,2)進行輸出。

結果圖:

十進位制與二進位制之間的轉換

一 正整數的十進位制轉換二進位制 要點 除二取餘,倒序排列,高位補0 例如把52換算成二進位制數,計算結果如圖 52除以2得到的餘數依次為 0 0 1 0 1 1,倒序排列,所以52對應的二進位制數就是110100。由於計算機內部表示數的位元組單位都是定長的,以2的冪次展開,或者8位,或者16位,或...

十進位制與二進位制之間的轉換

整型有4種進製形式 1.十進位制 都是以0 9這九個數字組成,不能以0開頭。2.二進位制 由0和1兩個數字組成。3.八進位制 由0 7數字組成,為了區分與其他進製的數字區別,開頭都是以0開始。4.十六進製制 由0 9和a f組成。為了區分於其他數字的區別,開頭都是以0x開始。位運算在計算機語言中運用...

十進位制與二進位制之間轉換詳解

二 二進位制數轉成十進位制數 三 十進位制正整數轉八進位制 基本原理 除基數倒取餘數法。即 十進位制轉二進位制,基數就是2,用2整除乙個十進位制正整數,可以得到乙個商和餘數 再用2去除商,又會得到乙個商和餘數 如此進行,直到商為0 然後把先得到的餘數作為二進位制數的低位有效位,把後得到的餘數作為二級...