1. 程式人生 > >C語言實現任意進位制數之間的轉換

C語言實現任意進位制數之間的轉換

使用C語言程式設計實現任意進位制數(2-16進位制)轉換為其他任意進位制數(2-16進位制),實驗平臺:vs2015。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int TenNum(char a[],int B);              //將輸入的數字轉換成10進位制數
void Numchange(int m, int B);            //將轉換好了的10進位制數轉換為所需進位制數
int TenNum(char a[], int B)
{
	int len, i, num;
	int sum = 0;     
	len = strlen(a);                    //求得字串長度
	for (i = 0; i < len; i++)
	{
		if (a[i] >= '0' && a[i] <= '9')
			num = a[i] - '0';
		else if (a[i] >= 'A' && a[i] <= 'F')
			num = a[i] - 'A' + 10;
		sum = sum * B + num;
	}
	return sum;
}
void Numchange(int m, int B)
{
	int n;
	if (m)
	{
		Numchange(m / B, B);
		n = m % B;
		if (n < 10)
			printf("%d", n);           //小於10直接輸出
		else
			printf("%c", n + 55);      //大於10轉換成字元輸出
	}
}
int main()
{
	int B, b;
	char a[20];       
	printf("請輸入待轉換數的進位制(2-16):");
	do {
		scanf_s("%d", &B);         
	} while (B < 2 && B > 16);
	printf("請輸入待轉換數:");
	getchar();         
	gets_s(a);                        //將輸入的n進位制數存放在陣列a中
	int m = TenNum(a, B);             //將輸入的數字轉換成十進位制數
	printf("請輸入需要轉成幾進位制數(2-16):");
	do {
		scanf_s("%d", &b);
	} while (B < 2 && B > 16);
	printf("%d進位制數%s轉換為%d進位制數的結果為:",B,a,b);
	Numchange(m, b);                 //將十進位制數轉換為所需進位制數
	printf("\n");
	system("pause");
	return 0;
}

相關推薦

C語言實現任意之間轉換

使用C語言程式設計實現任意進位制數(2-16進位制)轉換為其他任意進位制數(2-16進位制),實驗平臺:vs2015。 #include<stdio.h> #include<str

C語言實現任意轉換程式碼及解析

問題描述 給定一個 M 進位制的數 x,實現對 x 向任意的一個非 M 進位制的數的轉換。 問題分析 掌握不同數制間的轉換關係是解決問題的關鍵,這裡所說的數制一般包括二進位制、八進位制、十六進位制及十進位制。除了不同的數制還有下面幾個必須要了解的概念。 基數:在一種數制中,只能使用一組固定的數字來表示

C語言實現16到2轉換

今天幫同學看程式碼,她想實現把16進位制的數轉換成2進位制顯示,百度了一下,程式碼是不少,但是都太長了,想起C和指標裡面有似曾相識的東西,就自己寫了一下,還是遇到了一些問題。 1. 沒有注意到字串儲存的時候後面會自動加一個\0,因此想存放一個長度為n的字串

javascript實現任意間的轉換

<body> <input type="text" name="startR" placeholder="初始進位制"> <input type="text" name="endR" placeholder="目標進位制"> <input typ

java實現任意的互相轉換

首先宣告此工具類是借鑑前輩的程式碼寫的,工具類主要用於專案中需要生成一個key id,包括日期時間和mac,又要儘可可能資料量小並具有可讀性,可能我選為0-9,A-Z和幾個符號搭配成42進位制,具體程式碼如下, 你亦可能改變code_string,改為自己想要的

用棧實現將十進位制轉換任意(2,8,16...).

解題思路:假如N為輸入的數,n為要轉換為的進位制,若要將十進位制231轉換為8進位制數,過程如下; N                        N/n                      N%n 231                   28         

c語言的n轉換為10

#include<string.h> int main() {long t1; int i,n,t,t3; char a[100]; printf("please input anumber string:\n"); gets(a); strupr(a); t3=

c語言將16轉換成10

前言 要轉換的字串中包含可選的字首0x或者0X, 程式碼 /* * Created by sutaoyu on 2018/10/2 * */ #include<stdio.h> #in

C語言將10轉為2

第一種方法: #include<stdio.h> void dectobin(int n); int main() { int x=0; scanf("%d",&x);//只能正數 dectobin(x); pri

Java實現任意轉換

問題:將m進位制num轉換為n進位制 (2 <= m,n <= 62) ? 總體思路是:先將m進位制轉換為10進位制,再將10進位制轉為n進位制。 1、m進位制數num轉為10進位制

用鏈棧實現任意的轉化

      任意進位制的轉化基本思路是以十進位制為中轉,先將其他進位制轉為十進位制,再由十進位制轉目的進位制 /* 棧的結構型別 */ typedef char ElemType; typedef struct Stack{ ElemType elem[N];

字串和(Unicode)十六之間轉換方法包含(C#和VB6)

很多人在做簡訊傳送的時候都會遇到字元轉換的問題.也就是說漢字轉換成Unicode編碼的問題.1.C#中的程式碼        /// <summary>        /// <函式:Encode>        /// 作用:將字串內容轉化為16進位

C語言--十六陣列轉換為字串、十六字元陣列串列埠傳送

 首先,我們會遇到這麼多種的“十六進位制的表達字串”: char *str1 = "FF FF 12 FE EE 00 2F 09 3D 22 00 FF"; char *str2 = "FFFF12FEEE002F093D2200FF"; char *

Python內建轉換函式(實現16和ASCII轉換)

在進行wireshark抓包時你會發現底端視窗報文內容左邊是十六進位制數字,右邊是每兩個十六進位制轉換的ASCII字元,這裡使用Python程式碼實現一個十六進位制和ASCII的轉換方法。 hex() 轉換一個整數物件為十六進位制的字串 >>> hex(16) '0x10' >&

1.不同之間的相互轉換

我們比較常用的數制有十進位制、二進位制、八進位制和十六進位制。二進位制就是逢二進一,每位都是小於二的數,其他進位制類推。計算機儲存資料使用的是二進位制編碼。 對於一個R進位制的數X來說,其值可以通過下面的公式算出來:,前面是整數部分,後面是小數部分,m,n為正整數,表示第

有關負轉換

常見的進位制數有2,8,10,16,等,但是如果是以-2,-8為進位制怎麼辦呢 其實✨並不難 下面這個程式碼是以-2進製為例的程式碼,其他的正數進位制或負數進位制只要改-2即可 代*號的幾行就是隻

ASCII 碼和十六轉換 -51微控制器

題目:用查表法將一位十六進位制數轉換為ASCII碼,入口引數放在內部RAM 50H中,出口引數在R0中。要求:用匯編語言完成程式設計(用DB  "0","1"......)。懸賞分:0 -  解決時間

資料結構 棧的應用任意轉換c語言實現

#include "stdlib.h" #include "stdio.h" typedef struct Stack{ int *base; int *top; int stacksize;

C語言 用指標調換16的順序

// Pointer.cpp : 定義控制檯應用程式的入口點。 // #include “stdafx.h” int main() { int i = 0x11223344; printf(“i=0x%p\n”, i); //int *p = &i; char pc = (c

JAVA實現10轉化為任意n

我們仔細想想,要實現10進位制數轉化為任意n進位制的數,其實是可以用棧來實現的。 根據計算機的進位制轉換知識我們知道,10進位制數num轉化為n進位制(比如n=2),我們就是先進行num % n 操作,餘數不斷的除以2,直到餘數為零。然後把商按照從下到上的順序排列。(具體怎