用鏈棧實現任意進位制的轉化
任意進位制的轉化基本思路是以十進位制為中轉,先將其他進位制轉為十進位制,再由十進位制轉目的進位制
/* 棧的結構型別 */ typedef char ElemType; typedef struct Stack{ ElemType elem[N]; int top; }Stack; //初始化棧 void InitStack(Stack *S){ S->top=-1; } //出棧 void Pop(Stack *S){ if(S->top==-1){ printf("stack is null"); }else{ S->top--; } } //入棧 void Push(Stack *S,ElemType e){ S->top++; S->elem[S->top]=e; } //列印棧 void showStack(Stack *S){ int i; if(S->top==-1){ printf("stack is null"); }else{ for(i=S->top;i>=0;i--){ printf("%c",S->elem[i]); } } printf("\n"); } //十進位制轉其他進位制 void statechange(Stack *S,int n,int i){ int a=n,b; char c; do{ b=a%i; if(b>9){ c=b-10+'A'; }else{ c=b+'0'; } Push(S,c); a=a/i; }while(a>0); } //其他進位制轉十進位制 int changestate(Stack *L,int i){ int k,n=0,l=L->top,g; for(k=0;k<=l;k++){ g=L->elem[k]-'0'; if(g>i){ printf("輸入的進位制錯誤"); return -1; }else{ n+=pow(i,l-k)*(g); } } return n; }
相關推薦
用鏈棧實現任意進位制的轉化
任意進位制的轉化基本思路是以十進位制為中轉,先將其他進位制轉為十進位制,再由十進位制轉目的進位制 /* 棧的結構型別 */ typedef char ElemType; typedef struct Stack{ ElemType elem[N];
資料結構用順序棧實現R進位制轉換
#include<stdio.h> #define MAXSIZE 500 typedef struct{ int *base; int *top; int stacksize; }Sqstack; int Initstack(Sqstack &S)
C語言實現任意進位制轉換程式碼及解析
問題描述 給定一個 M 進位制的數 x,實現對 x 向任意的一個非 M 進位制的數的轉換。 問題分析 掌握不同數制間的轉換關係是解決問題的關鍵,這裡所說的數制一般包括二進位制、八進位制、十六進位制及十進位制。除了不同的數制還有下面幾個必須要了解的概念。 基數:在一種數制中,只能使用一組固定的數字來表示
javascript實現任意進位制間的轉換
<body> <input type="text" name="startR" placeholder="初始進位制"> <input type="text" name="endR" placeholder="目標進位制"> <input typ
Java實現任意進位制轉換
問題:將m進位制num轉換為n進位制 (2 <= m,n <= 62) ? 總體思路是:先將m進位制轉換為10進位制,再將10進位制轉為n進位制。 1、m進位制數num轉為10進位制
C語言實現任意進位制數之間的轉換
使用C語言程式設計實現任意進位制數(2-16進位制)轉換為其他任意進位制數(2-16進位制),實驗平臺:vs2015。 #include<stdio.h> #include<str
java實現任意進位制的互相轉換
首先宣告此工具類是借鑑前輩的程式碼寫的,工具類主要用於專案中需要生成一個key id,包括日期時間和mac,又要儘可可能資料量小並具有可讀性,可能我選為0-9,A-Z和幾個符號搭配成42進位制,具體程式碼如下, 你亦可能改變code_string,改為自己想要的
關於Java實現的進位制轉化(位運算)
一、需求: 最近在做檔案傳輸的東西,檔案傳輸當然是傳輸很重要,包括編碼格式以及進位制的統一。 簡略的說一下這次做的東西:首先檔案是按照塊來發送的,一塊一塊大的發,但是,傳送的過程是這樣的; 先發送頭部,頭部包括三部分:1.一個int型別的檔案Id, 2.一個long型別的偏
用棧實現將十進位制數轉換為任意進位制數(2,8,16...).
解題思路:假如N為輸入的數,n為要轉換為的進位制,若要將十進位制231轉換為8進位制數,過程如下; N N/n N%n 231 28
C語言資料結構用 棧 實現進位制轉化
直接上程式碼,思路看註釋; /*棧實現進位制轉化 *十進位制最大轉化為36進位制用10(A)-35(Z)表示 */ #include<stdio.h> #include<malloc.h> #include<stdlib.h> #
資料結構 棧的應用任意進位制轉換(c語言實現)
#include "stdlib.h" #include "stdio.h" typedef struct Stack{ int *base; int *top; int stacksize;
任意進位制轉換(佇列實現儲存和輸出)
#include <stdio.h> #include <stdlib.h> #define maxsize 1000000 **//定義佇列** typedef struct { char c[maxsize]; int top; }seqstack
【資料結構】順序表實現十進位制轉換任意進位制
/* & File : 進位制準換 * Author : Laugh * Copyright: Laugh * 主題 :對於輸入的任意一個非負十進位制小數,列印輸出與其等值的任意進位制小數 * Date : 2018/10/14 */
JAVA實現10進位制的數轉化為任意n進位制的數
我們仔細想想,要實現10進位制數轉化為任意n進位制的數,其實是可以用棧來實現的。 根據計算機的進位制轉換知識我們知道,10進位制數num轉化為n進位制(比如n=2),我們就是先進行num % n 操作,餘數不斷的除以2,直到餘數為零。然後把商按照從下到上的順序排列。(具體怎
資料結構實驗之棧一:進位制轉換(java實現)
資料結構實驗之棧一:進位制轉換 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 輸入一個十進位制整數,將其轉換成對應
請編寫一個C函式,該函式可以實現將一個整數轉為任意進位制的字串輸出
void to_change(int num,int n); int main() { int num,n; printf("Please enter a number to change:"); scanf("%d",&num); p
C++實現十進位制轉換為任意進位制
十進位制數在C++中用什麼表示? 一個十進位制數,在程式中用什麼方式轉換為其他進位制,和在數學中的思路一樣嗎?? 輸出的結果用什麼表示比較方便? 下面的程式中digit思考為什麼要用靜態變數? #include <iostream> #include <
4.2題目: 請編寫一個C函式,該函式可以實現將一個整數轉為任意進位制的字串輸出
/*編寫一個C函式,該函式可以實現將一個整數轉化為任意進位制的字串輸出*/ #include <stdio.h> #include <string.h> void change(char *s,int num,int n) {int i=0;char
用順序棧實現十進制向二進制轉化
clu 進制 () fin maxsize malloc all truct size #include<stdio.h> #include<stdlib.h> #define maxsize 30 typedef int datatype; ty
Python內建進位制轉換函式(實現16進位制和ASCII轉換)
在進行wireshark抓包時你會發現底端視窗報文內容左邊是十六進位制數字,右邊是每兩個十六進位制轉換的ASCII字元,這裡使用Python程式碼實現一個十六進位制和ASCII的轉換方法。 hex() 轉換一個整數物件為十六進位制的字串 >>> hex(16) '0x10' >&