2015-11-07 6 views
9

मैं गोलांग में int से हेक्स में कनवर्ट करना चाहता हूं। strconv में, एक विधि है जो तारों को हेक्स में परिवर्तित करती है। एक int से हेक्स स्ट्रिंग प्राप्त करने के लिए एक समान विधि है?मैं गोलांग में int से हेक्स में कैसे परिवर्तित कर सकता हूं?

उत्तर

11

इस्तेमाल कर सकते हैं अगर आप एक पूर्णांक के षोडश आधारी प्रतिनिधित्व खोजने की कोशिश कर रहे हैं के बाद से हेक्स एक Integer literal है, तो आप उस के एक स्ट्रिंग प्रतिनिधित्व के लिए fmt package पूछ सकते हैं पूर्णांक, fmt.Sprintf() का उपयोग करके, और %x या %X प्रारूप का उपयोग कर।
See playground

i := 255 
h := fmt.Sprintf("%x", i) 
fmt.Printf("Hex conv of '%d' is '%s'\n", i, h) 
h = fmt.Sprintf("%X", i) 
fmt.Printf("HEX conv of '%d' is '%s'\n", i, h) 

आउटपुट:

Hex conv of '255' is 'ff' 
HEX conv of '255' is 'FF' 
16

"हेक्स" वास्तविक चीज़ नहीं है। आप किसी संख्या के हेक्साडेसिमल प्रतिनिधित्व का उपयोग कर सकते हैं, लेकिन 0xFF और 255 के बीच कोई अंतर नहीं है। उस can be found in the docs पर अधिक जानकारी जो इंगित करती है कि आप एक पूर्णांक निरंतर 255 परिभाषित करने के लिए 0xff का उपयोग कर सकते हैं! आप का उल्लेख किया है, आप strconv

package main 

import (
    "fmt" 
    "strconv" 
) 

func main() { 
    fmt.Println(strconv.FormatInt(255, 16)) 
    // gives "ff" 
} 

Try it in the playground

3

तो कुछ बाइट्स स्वरूपण, हेक्स एक 2 अंक प्रतिनिधित्व, प्रमुख 0.

उदाहरण के लिए के साथ की जरूरत है: 1 => '01', 15 => '0 एफ', आदि

स्प्रिंटफ को इसका सम्मान करने के लिए मजबूर करना संभव है:

h:= fmt.Sprintf("%02x", 14) 
fmt.Println(h) // 0e 
h2:= fmt.Sprintf("%02x", 231) 
fmt.Println(h2) // e7 

पैटर्न "% 02x" का अर्थ है:

  • '0' बल शून्य का उपयोग कर
  • उत्पादन आकार '2' की स्थापना की दो charactes रूप
  • 'एक्स' हेक्साडेसिमल
  • में कन्वर्ट करने के लिए
संबंधित मुद्दे

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