2017-10-06 189 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()'完全符合你的要求。 –

相关问题