簡體   English   中英

C#,十進制負數到十六進制

[英]C#, negative decimal values to heximal

我正在編寫一個必須節省盡可能多空間的代碼。

for (int i = 0; i < Code.Length; i++){
    CodeInHex[i] = String.Format("{0:X}", Code[i]); // e.g. Dec value = -95, hex = "FFFFFFA1"
}

有沒有辦法使十六進制值等於-A1而不是“ FFFFFFA1”? (請參閱此處在c#中允許)。

好吧,您可以手動進行操作:

var val = Code[i];
CodeInHex[i] = val < 0 ? ("-" + (-val).ToString("X")) : val.ToString("X");

但! 負十六進制不是表示負數的常見方式。 它僅是“在C#中允許的”,因為它是應用於一正常數的一元求反運算符。 即,當問題顯示-0x1 ,它是“取反(某些表達式)”,其中“某些表達式”是0x1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM