2013-10-18 82 views

回答

3

試試這個:

oldFormat = get(0,'Format'); 
format('hex'); display(-1:0.1:1); 
format(oldFormat); 

只有中間線是非常重要的。另外兩個將你的格式恢復到之前的狀態(默認爲「短暫」)。我不確定輸出是否符合IEEE標準,但我懷疑它會。根據documentation,這將顯示「二進制雙精度數字的十六進制表示」。

如果你想將其保存爲字符串,你可以打印後用sprintf與格式%bx

x = -1:0.1:1; 
for i = 1:length(x) 
    vals{i,1} = x(i); 
    vals{i,2} = sprintf('%bx',x(i)); 
    vals{i,3} = dec2bin(hex2dec(sprintf('%bx',x(i))),64); 
end 
display(vals(:,[1 2])); 
display(vals(:,3)); 
+0

感謝。這會生成16位十六進制數字,但是在verilog的乘法器模塊中,是否可以將16位十六進制與64位二進制數相乘?我對此有點新鮮。 – user2045143

+0

只要你的verilog編譯器接受它。數字以任意方式存儲在系統中,因此處理器,FPGA等中的所有操作都以二進制形式進行。唯一的問題是確保你的編譯器知道你給它的是一個雙精度數字而不是一個整數,但這很可能會以接受雙精度二進制數字的方式完成。 – nispio

+0

我添加了一個更新,將它們轉換爲二進制文件,如果你想這樣做。 – nispio

相關問題