1. 程式人生 > >將十六進位制字串轉換成十進位制數字

將十六進位制字串轉換成十進位制數字

Write a function that parses a hex number as a string into a decimal integer.

The function header is as follows:

int parseHex(const char * const hexString)

For example, hexString “A5” is 165 (10*16+5=165). So, parseHex(“A5”) returns 165.

int parseHex(const char * const hexString) 
{
    if(hexString == NULL){
        cout
<< "error !!!"; return 0; } int result = 0; int len = strlen(hexString); for(int i = 0; i < len; i++){ if(hexString[i] >= 'A' && hexString[i] <= 'F'){ result = result * 16 + (hexString[i] - 'A' + 10); }else{ result = result * 16
+ (hexString[i] - '0') ; } } return result; }

如果要將10進位制的數字以16進位制的數形式輸出來呢?
C語言中有一種輸出格式可以很快的實現這一想法。

int a;
scanf("%d", &a);
printf("%d\n", a);
printf("%x\n", a);

這樣就可以將10進位制的數字以16進位制的數字輸出了。
如輸入10進位制數 2333333
輸出16進位制數 239a95

相關推薦

字串轉換十進位制數字

Write a function that parses a hex number as a string into a decimal integer. The function header is as follows: int parseHex(co

字串轉換十進位制數字

int ChangeNum(char* str, int length){char  revstr[16] = { 0 };  //根據十六進位制字串的長度,這裡注意陣列不要越界  int   num[16] = { 0 };int   count = 1;int   res

一個字串轉換十進位制數值的問題

在程式中,我們有時需要將一個十六進位制字串轉換為十進位制數字。比如: char *ptr="0x11"; int n=0; //我們想讓n等於0x11,即17 通常我們在C中,想將一個字串轉換為一整形

java如何一個字串轉換ASCII字串

廢話多直接上程式碼: public static String x16toString(String x16 , String CharsetName) throws UnsupportedEncodingException{ if(x16==null || "".eq

資料轉換有符號十進位制

方法一: #define _READ_HEXADECIMAL_DATA_ #define HEXADECIMAL_ROW_NUM 32 void main() { char tempBuffer1[10]; char tempBuffer2[10]; char tempB

QT十進位制字串轉換

QByteArray在串列埠通訊中經常被使用,有一定必要較為全面詳細的對QByteArray進行闡述。本文通過以下幾個部分加以介紹: 1. 初始化 2. 訪問與賦值 3. 新增、刪除、插入與替換操作 4. 查詢與比較 5. 資料轉換與處理 1 初始化 2 訪問與賦值

把unicode編碼的字串轉換為漢字(Python2.7)

#小端位元組序轉為大端位元組序 def little2big_endian(hex_string): big_endian_str = '' #定義一個空字串 for i in range(len

python字串轉為十進位制數字

呼叫Python內建int()函式把該字串轉為數字。以下為在Python直譯器程式設計環境下的操作示範: http://www.zeuux.com/blog/content/4024/ 把十六進位制的字串轉為十進位制數字: Python程式碼 >>> print int('ff', 16

Android 字串轉換為位元組與反轉

藍芽與硬體之間通訊一般採用十六進位制,所以需要將進位制進入轉換一下。 現提供幾個我使用的轉換方法: 1、十六進位制轉換為位元組 /** * 將十六進位制的字串轉換成位元組 * * @pa

字串轉為byte陣列

需求是這樣有十六進位制字串要存為byte陣列 如string st = "0A000000",轉為byte後為 byte[0]=10,byte[1]=0,byte[2]=0,byte[3]=0    因.net2.0可用Convert將十六進位制字串轉為byte有現成的就用吧

數拆分兩個ASCII碼值

       將一個十六進位制數轉化成兩個ASCII碼值,即兩個字元形式。 如0x3F,轉化成二進位制形式為0011 1111,轉化成字元為“3F”,將十六進位制轉化成兩個ASCII碼值(字元形式)。 #include<stdio.h> type

字串轉化為十進位制

#include <stdio.h> #include <string.h> /* 傳進一個整數和次方數 * 返回整數的n次方 */ int power(int num, int n) { int result = 1; if (n

iOS 字串 "#FFFF00" 轉換顏色物件

1 + (UIColor *)colorWithHexStr:(NSString *)hexString { 2 NSString *colorString = [[hexString stringByReplacingOccurrencesOfString:@"#" withString:

nodejs字串與btye型資料相互轉換

byte型轉換十六進位制字串 /** * byte型轉換十六進位制 * @param b * @returns {string} * @constructor */ const Bytes2HexString = (b)=> { let hexs = ""; fo

二進位制字串十進位制字串,ASC/GBK字串間的相互轉換函式

 最近在做一些**演算法的處理,由於借鑑了許多已存在模組,處理時使用了許多字串和進位制轉換函式,過程中從下面幾個函式中得到許多幫助。 論壇參考連結: https://bbs.csdn.net/topics/390991981 十進位制整數轉二進位制串 十進位制整數

一個轉換為二進位制字元陣列的函式

十六進位制數轉換為二進位制陣列的函式HexToBinStr 函式實現: void HexToBinStr(int hex, char *bin_str, int str_size) { int i; for (i = 0; i !=str_size; ++i) { b

android byte位元組陣列轉換字串(物聯網開發總結)

想起前段時間的物聯網的外包開發,經常遇到通過wifi接受的資料,要通過轉換成十六進位制字串,或者最後又是十進位制資料。都是根據雙方的協議來開發的。那麼我傳送過去的資料也需要,經過特殊轉換成byte位元組發過去,硬體那邊收到不至於亂碼的資料。 1、硬體除錯發給android這

byte[]陣列與字串字串的互相轉換(轉載)

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

C語言實現位元組流與字串的相互轉換

//位元組流轉換為十六進位制字串void ByteToHexStr(const unsigned char* source, char* dest, int sourceLen){    short i;    unsigned char highByte, lowByte;    for (i = 0; i

socket 傳送字串字串與其他型別的轉換)(轉)

socket 傳送十六進位制的字串 專案用到 socket tcp/ip 傳送/接受 十六進位制的字串,因為C# socket 傳送接受的都是byte[] (位元組陣列),現在記錄tyte[] 與各資料型別之間的轉換 注: C#的位元組陣列 byte[] 存放的時間是0-255的整型資料 byte 關鍵字