2017-10-06 66 views
-1

我想將字符串轉換爲十六進制中的相同值。例如將字符「1」轉換爲十六進制「4'h0001」

如果string =「abc123」,它的十六進制值也應該是24'habc123。 串的長度是64,所以我將每個字符爲十六進制,我會得到的十六進制值的64×4 = 256位

例如如果text_o_cplus.getc(I)=α即97,我應該爲它分配一個十六進制值a i'e 4'ha; 但我沒有得到正確的方式來做到這一點。這就是我試圖

 int j=255; 
     for(int i=text_o_cplus.len();i>0;i--) 
     begin 
     while(j>=0) 
     begin 
      case(text_o_cplus.getc(i)) 

      48:  begin 
        rev_result[j]=4'b0000; 
        j=j-4; 
        break; 
        end 

    and so on. 

rev_result被定義爲

 bit [64][4] rev_result; 

我試圖把它定義爲

 bit [255:0] rev_result 

還,但它沒有工作。

有人可以請建議我該如何實現它?

回答

2

使用內置函數:

bit [255:0] rev_result = text_o_cplus.atohex(); 
+0

我不想要一個字符串「X」的十六進制值。我有一個字符串讓我們說「abc」, 我想將「a」轉換爲4'b1010或4'ha「b」轉換爲4'hb,將「c」轉換爲4'hc。 – Saurabh

+0

閱讀LRM。 'atohex()'完全符合你的要求。 –

相關問題