負整數的結果我是在看的a project的源代碼,我注意到以下statement(二者keyByte和codedByte是byte
類型):C#:轉換爲一字節
return (byte)(keyByte - codedByte);
我現在正在嘗試瞭解在keyByte小於codedByte的情況下結果是什麼,這會導致負整數。
一些實驗後理解鑄造具有在範圍內的值[-255:-1]負整數的結果,我得到了以下結果:
byte result = (byte) (-6); // result = 250
byte result = (byte) (-50); // result = 206
byte result = (byte) (-17); // result = 239
byte result = (byte) (-20); // result = 236
所以,只要-256 < a < 0
,我能夠通過以下方式確定結果:
result = 256 + a;
我的問題是:我是否應該總是期待這種情況?
重複一遍:你絕對正確。因爲任何「負數」值都不在.Net「字節」的範圍之內,.Net將首先提升(大於255的整數值)。 – paulsm4