2011-08-23 11 views
21

में प्रतिनिधित्व करने वाले मान के लिए हेक्स अंकों की स्ट्रिंग को कैसे परिवर्तित करूं मैं हेक्स डेटा की कई पंक्तियों में पढ़ रहा हूं। वे तारों के रूप में आते हैं और मैं उन्हें लाइन_codes के लिए पार्स करता हूं जो मुझे बताता है कि शेष डेटा के साथ क्या करना है। एक पंक्ति एक पते (एमएसडब्लू) का सबसे महत्वपूर्ण शब्द सेट करती है, एक और पंक्ति कम से कम महत्वपूर्ण (एलएसडब्लू) सेट करती है।मैं लूआ

मुझे फिर उनको एक साथ जोड़ना होगा ताकि अगर एमएसडब्ल्यू = "00 एफएफ" और एलएसडब्ल्यू = "एफ 10 ए" पता 00fff10a होगा।

यह सब ठीक चला गया, लेकिन फिर मैं पता मानों के एक विशिष्ट सेट के बीच था, तो जाँच करने के लिए चाहिए था:

if address <= "007FFFh" and address >= "000200h" then 
    print "I'm in" 
end 

आप सभी जानते ही होंगे लुआ इस के एक प्रशंसक के रूप में यह मुझे देता नहीं है तारों के साथ <= और >= का उपयोग कर एक त्रुटि।

यदि कोई तरीका है तो मैं स्ट्रिंग को हेक्स में परिवर्तित कर सकता हूं, जैसे कि "एफएफएफएफ" 0xFFFF बन जाएगा?

+13

नया पीने का खेल: जब भी कोई लाता है तो लूआ एक संक्षिप्त शब्द नहीं है। – Alex

उत्तर

31

आप tonumber का उपयोग करें:

local someHexString = "03FFACB" 
local someNumber = tonumber(someHexString, 16) 

ध्यान दें कि संख्या हेक्साडेसिमल में नहीं हैं। न ही वे दशमलव, ऑक्टल, या कुछ और में हैं। वे सिर्फ संख्याएं हैं। संख्या 0xFF 255 के समान संख्या है। "एफएफ" और "255" समान संख्या के स्ट्रिंग प्रस्तुतिकरण हैं।

+0

मुझे फिर से निकोल बोलस बचाया, धन्यवाद :) – Sambardo

+0

ठीक है, मैंने अभी तक इसका परीक्षण नहीं किया है, लेकिन मुझे यकीन है कि जब मैं इसे वापस प्राप्त करता हूं तो मुझे वह करना होगा जो मुझे चाहिए। – Sambardo

संबंधित मुद्दे