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,直到餘數為零。然後把商按照從下到上的順序排列。(具體怎