十進位制整數 浮點數與十六進製制字串互轉

2022-07-31 23:03:18 字數 1798 閱讀 7579

/*

* * 函式:hex2dec

* 描述:十六進製制字串轉十進位制整數

* 引數:pstrhex 十六進製制字串(以數值的位元組順序)

* nlen 字串長度(不含null結束符)

* 返回:十進位制整數 */

int hex2int(unsigned char *pstrhex, int

nlen)

else

if ((toupper(pstrhex[i+1]) >= 'a'

))

else

j++;

}return

nret;}/*

* * 函式:hex2float

* 描述:十六進製制字串轉浮點數

* 引數:pstrhex 十六進製制字串(以數值的位元組順序)

* nlen 字串長度(不含null結束符)

* 返回:浮點數 */

float hex2float(unsigned char *pstrhex, int

nlen)

else

if ((toupper(pstrhex[i+1]) >= 'a'

))

else

j++;

}return

fret;}/*

* * 函式:int2hex

* 描述:獲取十進位制整數的十六進製制字串表示(以本機記憶體的位元組儲存順序)

* 引數:ndec 待轉換整數

* pstrbuf 字串緩衝區,儲存轉換結果,轉換結果呈現的是數值在本機記憶體中高低位元組的儲存順序,根據本機大小端模式的不同,

* 呈現的不一定是該數值的位元組順序(大端是一樣的,而小端是逆序的)。在windows下,由於是小端,如果想要pstrbuf返回

* 數值的位元組順序,需要首先把ndec轉換為大端再傳入。 */

unsigned

char* int2hex(int ndec, unsigned char *pstrbuf)

}return

pstrbuf;}/*

* * 函式:float2hex

* 描述:獲取浮點數的十六進製制字串表示(以本機記憶體的位元組儲存順序)

* 引數:fdec 待轉換浮點數

* pstrbuf 字串緩衝區,儲存轉換結果,轉換結果呈現的是數值在本機記憶體中高低位元組的儲存順序,根據本機大小端模式的不同,

* 呈現的不一定是該數值的位元組順序(大端是一樣的,而小端是逆序的)。在windows下,由於是小端,如果想要pstrbuf返回

* 數值的位元組順序,需要首先把fdec轉換為大端再傳入。 */

unsigned

char* float2hex(float fdec, unsigned char *pstrbuf)

}return

pstrbuf;}//

旋轉十六進製制的字串順序

void rotatehexstring32(unsigned char *pstrbuf)

void short2hex(unsigned short dec, char *hex)

else

hex[i--] = r;}}

unsigned short hex2short(char *hex)

return sum;

}

十進位制 十六進製制

把十進位制整數轉換為十六進製制,格式為0x開頭,10 15由大寫字母a f表示。input 每行乙個整數x,0 x 2 31。output 每行輸出對應的八位十六進製制整數,包括前導0。sample input 0 1023 sample output 0x00000000 0x000003ff 水...

十六進製制轉十進位制

create function fn hextobinary hex varchar 8 returns varchar 255 asbegin declare base tinyint declare string varchar 255 declare return varchar 255 de...

十進位制轉為十六進製制

問題描述 十六進製制數是在程式設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f共16個符號,分別表示十進位制數的0至15。十六進製制的計數方法是滿16進1,所以十進位制數16在十六進製制中是10,而十進位制的17在十六進製制中是11,以此類推...