1. 程式人生 > >十進位制轉換為2、8、16進位制

十進位制轉換為2、8、16進位制

package test;

/**

 * 進位制轉換

 * @author 

 *

 */

public class Test {

private static final int NUM_TWO = 2;

private static final int NUM_EIGHT = 8;

private static final int NUM_HEX = 16;

private static final char[] HEX = {'0','1','2','3','4','5','6','7','8','9',

'a','b','c','d','e'};

/**

 * 得到二進位制

 * @param num

 * @return

 */

public static String getTwo(int num){

StringBuffer sb = new StringBuffer();

int remainder ;//= num % NUM_TWO;//餘數

int quotient ;//= num / NUM_TWO;//商

do{

remainder = num % NUM_TWO;

quotient = num / NUM_TWO;

num = quotient;

sb.insert(0, remainder);

}while(quotient != 0);

return sb.toString();

//return Integer.toBinaryString(num);

}

/**

 * 得到八進位制

 * @param num

 * @return

 */

public static String getEight(int num){

StringBuffer sb = new StringBuffer();

int remainder ;//= num % NUM_EIGHT;//餘數

int quotient ;//= num / NUM_EIGHT;//商

do{

remainder = num % NUM_EIGHT;

quotient = num / NUM_EIGHT;

num = quotient;

sb.insert(0, remainder);

}while(quotient != 0);

return sb.toString();

//return Integer.toOctalString(num);

}

/**

 * 得到十六進位制

 * @param num

 * @return 

 */

public static String getHex(int num){

StringBuffer sb = new StringBuffer();

int remainder ;//= num % NUM_HEX;//餘數

int quotient ;//= num / NUM_HEX;//商

do{

remainder = num % NUM_HEX;

quotient = num / NUM_HEX;

num = quotient;

sb.insert(0, HEX[remainder]);

}while(quotient != 0);

return sb.toString();





//return Integer.toHexString(num);

}

public static void main(String[] args) {

int num = 11;

System.out.println("十進位制數:"+num);

System.out.println("二進位制為:"+getTwo(num));

System.out.println("八進位制為:"+getEight(num));

System.out.println("十六進位制為:"+getHex(num));

}

}
每個函式中被註釋的return為庫函式可以直接呼叫就可以得到結果。

相關推薦

2 8 10 16轉換(圖解篇)

一.本文所涉及的內容(Contents) 二.背景(Contexts)   之前使用SQL把十進位制的整數轉換為三十六進位制,SQL程式碼請參考:SQL Server 進位制轉換函式,其實它是基於二、八、十、十六進位制轉換的計算公式的,進位制之間的轉換是很基礎的知識,但是

printfsscanf進行16資料轉換問題

問題1:原程式的目的是將字串形式的mac地址存放在char型陣列當中(如有更好的獲取方法留言說下,謝謝),程式碼如下,在mac執行如下程式碼後,變數int型值發生了變化。 #include <stdio.h> typedef unsigned int ui

學以致用——VBA實現十進位制數字轉換字母(二十六)(Convert a number to letters (Excel Column number to name) with VBA)

Excel列標與列名轉換問題,本質上是一個十進位制數和二十六進位制數的轉換問題。記得以前學C、C#、JAVA等程式語言時,已經做過一些相關練習了。但是,老實說,在用公式法解決這個十進位制轉二十六進位制的問題時還真是難到我了,花了好幾個小時也沒有解決。於是,求助網路,在一篇文章

學以致用——使用VBA函式將十進位制數字轉換字母(二十六)(Convert a number to letters (Excel Column number to name))

利用空閒時間,開發了一個十進位制轉換為字母(相當於26進位制)的函式。功能有:1. 給定Excel列標,返回對應的列名(如,第677列對應的列名為“ZA”)(但是,Excel中的列最多為16384列,對應的列名為XFD)2. 給定任意正長整形數值(即,1到2147483647

字串轉int:處理8,10,16以及處理無效字元

字串轉int函式: 函式名:Myatoi(*str) 功能:將一串字串轉成int整形數字 注意事項: 1.int型最大取值範圍:2147483647,int型佔4位元組,即4*8 = 32位二進位制,整數在二進位制中用原碼錶示即可,第一位為符號位0表示正數,即:01111111 11

C#轉換操作(三)之16操作

一、字串和16進位制字串互轉 1.字串轉16進位制字串 /// <summary> /// 字串轉Hex,方法1使用Convert.ToString(byte, 16) /// </summary> /// <param name="s

十進位制轉換2816

package test; /**  * 進位制轉換  * @author  *  */ public class Test { private static final int NU

C# 281016...各種間的輕鬆轉換

在.NET Framework中,System.Convert類中提供了較為全面的各種型別、數值之間的轉換功能。其中的兩個方法可以輕鬆的實現各種進位制的數值間的轉換: Convert.ToInt32(string value, int fromBase): 可以把不同進位制數

python常用的十進位制16字串位元組串之間的轉換(長期更新帖)

進行協議解析時,總是會遇到各種各樣的資料轉換的問題,從二進位制到十進位制,從位元組串到整數等等 廢話不多上,直接上例子 整數之間的進位制轉換: 10進位制轉16進位制: hex(16)  ==>  0x10 16進位制轉10進位制: int('0

Swift String通過下標獲取子串計算字串的寬高16轉10String轉換AttributedString使用正則驗證合法性

String通過下標獲取子串 extension String { func index(_ offset: Int) -> Index { return self.index(startIndex, offsetBy: offset) }

python--常用的十進位制16字串位元組串之間的轉換

進行協議解析時,總是會遇到各種各樣的資料轉換的問題,從二進位制到十進位制,從位元組串到整數等等 整數之間的進位制轉換: 10進位制轉16進位制: hex(16) ==> 0x10 16進位制轉10進位制: int(‘0x10’, 16) ==> 16 類似的還有oct(),

python經常使用的十進位制16字串位元組串之間的轉換(長期更新帖)

進行協議解析時。總是會遇到各種各樣的資料轉換的問題,從二進位制到十進位制,從位元組串到整數等等 廢話不多上。直接上樣例   整數之間的進位制轉換: 10進位制轉16進位制: hex(16)  ==>  0x10 16進位制轉10進位制: int('0x10

python常用的十進位制16字串位元組串之間的轉換

整數之間的進位制轉換: 10進位制轉16進位制: hex(16)  ==>  0x1016進位制轉10進位制: int('0x10', 16)  ==>  16類似的還有oct(), bin()-------------------字串轉整數:10進位制字串:

十進位制轉化成2,8,16數工具。將程式碼全部複製到一個txt文件中儲存,並將檔案字尾.txt改.html,再瀏覽器開啟即可

<!DOCTYPE html> <html lang="en"> <head> <meta charset="GBK"> <meta http-equiv="X-UA-Compatible" content="IE=ed

關於QT內部16十進位制QByteArray,QString

QT裡面的資料轉化成十六進位制比較麻煩,其他的int或者byte等型都有專門的函式,而十六進位制沒有特定的函式去轉化,這我在具體的專案中已經解決(參考網上大神)->小專案程式 QT裡面雖然有什麼QString str; str.toInt();等函式,但是用不好的話,會出很大的問題。

C# 16與字串位元組陣列之間的轉換(轉)

1.請問c#中如何將十進位制數的字串轉化成十六進位制數的字串 //十進位制轉二進位制 Console.WriteLine("十進位制166的二進位制表示: "+Convert.ToString(166, 2)); //十進位制轉八進位制 Console.WriteLine("十進位制166的八進位

Python實現:十進位制數與(2~16數)之間的互相轉換

(最開始源於牛客網上的一道程式設計題 : [程式設計題] 數制轉換)   將X進位制轉為int十進位制的功能函式:(乘X次方各位數的加和法) # 將X進位制轉為int十進位制的功能函式:(乘X次方各位數的加和法) def XToInt(strNum,X): sum = 0

c語言將十進位制轉換16的函式

有3種方式實現,其中兩種是使用系統函式,另一種是直接自己編寫。 使用系統函式實現要加入#include <stdlib.h>,自己編寫則不需要這個標頭檔案。 下面的程式碼就是3種方式的實現,包括2位的整數和任意整數(2的31次方以內)都可以。可自己選擇需要的實現

C# 判斷字串是否2,8,10,16

/// <summary> /// 判斷是否十六進位制格式字串 /// </summary> /// <param name="str">字串</param>

輸入一個十進位制整數,設計遞迴函式,將該整數轉化一個二進位制數。 思考: 如何將一個十進位制數轉化成一個816數。

1,輸入一個十進位制整數,設計遞迴函式,將該整數轉化為一個二進位制數。思考: 如何將一個十進位制數轉化成一個8進位制和16進位制數。 #include<stdio.h> #define  N  20 int main() { int a,n,c,k,i; cha