我剛剛學習C,在我的課堂上,這是我們第一個課程的一部分。編寫一個C函數來解析一個十六進制字符串並將其轉換爲十進制?
我想實現的功能的完整描述:
如果這是TL;博士,一個關鍵點是,我不能使用功能從其它庫(所以像srtol
被排除) 。
int parseHexString(char *hexString, int *integerRead);
第一 參數是空終止C字符串,表示與十六進制 整數。此函數分析此字符串,累計其表示的整數值 。該整數值位於第二個參數integerRead指向的位置 。如果遇到錯誤的十六進制 字符(因此遇到無效的十六進制值),則此函數 將停止查看字符串中的其他字符並返回-1。 如果一個良好的十六進制值進行解析,則返回0。實現此功能的正確方法着眼於字符串中的第一個字符 第一,不使用堆棧 完成解析。你的第一個彙編語言程序將需要 來實現這個功能完成的功能,所以你將通過正確的方式實現這個功能來節省你自己的時間。
對於此功能,請勿調用任何庫中的任何函數;作爲 例外,僅用於調試目的,您可以使用
printf()
。如果您在提交 作業之前刪除了調試代碼,它將幫助我們分級。
我不只是尋找這個功能的完整實現,只是一些提示或提示讓我開始。
我覺得好像有一些直觀的做法,但現在我空白。我關心的是如何從字符串的第一個字符開始,然後從那裏開始將其轉換爲十進制。
哇,他們甚至提到你可以使用**之前,你發送功課**。 – cnicutar 2013-02-09 09:48:05
需要多少個十六進制字符才能生成1個字節? – Flexo 2013-02-09 09:50:19