亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

 Python和C語言:利用棧分別實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換

89542767 / 520人閱讀

  寫這篇文章的主要目的,是給大家介紹兩門語言,C語言和Python兩門語言,怎么利用其數(shù)據(jù)結(jié)構(gòu),實(shí)現(xiàn)十進(jìn)制和二進(jìn)制數(shù)的轉(zhuǎn)換,具體代碼下文也會(huì)給大家貼出來,希望能為大家?guī)硪欢ǖ膸椭?/p>

問題描述

利用棧的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)將十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)

C語言實(shí)現(xiàn)

順序表的存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)棧

代碼:

#include <stdlib.h>
#include <stdio.h>
 
#define STACK_INIT_SIZE 100   //棧初始開辟空間大小
#define STACK_INCREMENT 10    //棧追加空間大小
 
//棧的結(jié)構(gòu)體
typedef struct stack{
    int *base;
    int *top;
    int size;
}binStack;
 
//棧初始化
binStack stack_init()
{
    binStack bs;
    bs.base = (int *)malloc(sizeof(int)*STACK_INIT_SIZE);
    bs.top = bs.base;
    bs.size = STACK_INIT_SIZE;
    return bs;
}
 
//入棧
void push(binStack *bs, int e)
{
    if(bs->top - bs->base >= bs->size)
    {
        bs->size += STACK_INCREMENT;
        bs->base = realloc(bs->base, bs->size);
    }
    *(bs->top++) = e;
}
 
//出棧
int pop(binStack *bs)
{
    if(bs->top != bs->base)
    {
        bs->top--;
        return *bs->top;
    }
    return -1;
}
 
//主函數(shù)
void main()
{
    int dec;
    binStack bs = stack_init();
    printf("請(qǐng)輸入十進(jìn)制整數(shù):\n");
    scanf("%d", &dec);
    while(dec)
    {
        push(&bs, dec%2);
        dec /= 2;
    }
    printf("轉(zhuǎn)換后的二進(jìn)制數(shù)是:\n");
    while(bs.top != bs.base)
    {
        printf("%d", pop(&bs));
    }
    printf("\n\n");
    system("date /T");
    system("TIME /T");
    system("pause");
    exit(0);    
}

運(yùn)行結(jié)果:

5.png

Python實(shí)現(xiàn)

對(duì)于stack我們可以使用python內(nèi)置的list實(shí)現(xiàn)(也可以用鏈表實(shí)現(xiàn)),因?yàn)閘ist是屬于線性數(shù)組,在末尾插入和刪除一個(gè)元素所使用的時(shí)間都是O(1),這非常符合stack的要求。

代碼:

import datetime  //顯示時(shí)間引入的庫
import time      //
from pip._vendor.distlib.compat import raw_input  //使命令窗口不立即關(guān)閉引入的庫
 
//棧類
class BinStack:
    def __init__(self):
        self.bs = []
    
    //入棧
    def push(self, e):
        self.bs.append(e)
    
    //出棧     
    def pop(self):
        if self.bs:
            return self.bs.pop()
        else:
            raise LookupError("stack is empty!")
    
    //檢查棧是否為空,是返回False,不是返回True
    def isEmpty(self):
        return bool(self.bs)
        
if __name__ == '__main__':
    binStack = BinStack()
    dec = int(input("請(qǐng)輸入十進(jìn)制整數(shù):\n"))
    print("轉(zhuǎn)換后的二進(jìn)制數(shù)是:")
    while dec != 0:
        binStack.push(dec%2)
        dec //= 2
    while binStack.isEmpty() == True:
        print("{}".format(binStack.pop()), end="")
    else:
        print("\n")
    //打印時(shí)間
    datetime = datetime.datetime.now()
    print(datetime.strftime("%Y-%m-%d\n%H:%M:%S"))
    //使命令窗口不立即關(guān)閉
    input("Press Enter to exit…")

運(yùn)行結(jié)果:

6.png

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/127591.html

相關(guān)文章

  • Python之路系列之?dāng)?shù)字?jǐn)?shù)據(jù)類型

    摘要:數(shù)字在中,整型長(zhǎng)整型浮點(diǎn)數(shù)負(fù)數(shù)布爾值等都可以稱之為數(shù)字類型。數(shù)字類型的復(fù)雜度整數(shù)比浮點(diǎn)數(shù)簡(jiǎn)單浮點(diǎn)數(shù)比復(fù)數(shù)簡(jiǎn)單。布爾類型布爾類型其實(shí)就是數(shù)字和的變種而來,即真或假,實(shí)際上就是內(nèi)置的數(shù)字類型的子類而已。 上篇文章中我們簡(jiǎn)單的體驗(yàn)了Python語言基本概念與語法,那么在繼續(xù)深入下去的過程中,不妨先學(xué)習(xí)幾個(gè)常見的Python內(nèi)置數(shù)據(jù)類型?這也是大部分Python教科書的學(xué)習(xí)目錄,由淺至深,慢慢...

    Developer 評(píng)論0 收藏0
  • python入門

    摘要:零預(yù)備知識(shí)字符編碼計(jì)算機(jī)只能處理數(shù)字,所以為文本需要轉(zhuǎn)化為數(shù)字才能被計(jì)算機(jī)處理,計(jì)算機(jī)里八個(gè)比特作為一個(gè)字節(jié),這是數(shù)據(jù)的存儲(chǔ)基礎(chǔ)單位。 零、預(yù)備知識(shí) 0.1 字符編碼計(jì)算機(jī)只能處理數(shù)字,所以為文本需要轉(zhuǎn)化為數(shù)字才能被計(jì)算機(jī)處理,計(jì)算機(jī)里八個(gè)比特(bit)作為一個(gè)字節(jié)(byte),這是數(shù)據(jù)的存儲(chǔ)基礎(chǔ)單位。計(jì)算機(jī)為了處理文本,有以下三種編碼方式: ASCII碼:只有大小寫英文字母,數(shù)字...

    xeblog 評(píng)論0 收藏0
  • Django Web開發(fā)技術(shù)清單-Python基礎(chǔ)篇

    摘要:使用單引號(hào)雙引號(hào)和三引號(hào)或來表示字符串。不可變的集合函數(shù)會(huì)以字典類型返回當(dāng)前位置的全部全局變量。用于將進(jìn)制整數(shù)轉(zhuǎn)換成進(jìn)制,以字符串形式表示。返回字符串中最大的字母,或數(shù)組中的最大值。的作用就是減少了單行函數(shù)的定義。 問題答案由本人整理 1.基礎(chǔ)語法是否熟悉?介紹一下 Python和其他語言最大的區(qū)別就是使用行和縮進(jìn),而不是大括號(hào)({})或者分號(hào)(;)來控制類、函數(shù)或者邏輯判斷。Pyt...

    leeon 評(píng)論0 收藏0
  • Python從入門到精通】五萬六千字對(duì)Python基礎(chǔ)知識(shí)做一個(gè)了結(jié)吧!(二十八)【值得收藏】

    摘要:它是一門解析型的語言,何為解析型語言呢就是在運(yùn)行時(shí)通過解析器將源代碼一行行解析成機(jī)器碼。而像語言,等則是編譯型的語言,即通過編譯器將所有的源代碼一次性編譯成二進(jìn)制指令,生成一個(gè)可執(zhí)行的程序。 ...

    leeon 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<