當前位置:編程學習大全網 - 網站源碼 - verilog取絕對值如果是負數可以按位取反再加1,也可以直接用0減,可是如

verilog取絕對值如果是負數可以按位取反再加1,也可以直接用0減,可是如

壹、~(~1<<1)

計算過程為

1 先將1按位取反,即計算~1, 結果為除最低位為0外,其它位均為1;

2 計算左移1位,低位補0,於是結果的最低2位為0,其它為為1;

3 將2中結果按位取反,得到結果為,最低2位為1,其它為為0;

所以最終結果為3。

二、

在C語言中,負數是以補碼方式存放的,計算方法為,負數絕對值對應數值的二進制值,按位取反後再加壹。

當負數按位取反時,就是其補碼按位取反。

比如,-10在存儲為char型時,10的二進制值為0000 1010,取反後為1111 0101, 加壹得到補碼的二進制值為 1111 0110, 所以-10在存為char型時,補碼的16進制值形式為0xF6.

當-10取反時,就是把1111 0110取反,結果為0000 1001, 結果為10進制的9。

  • 上一篇:從哪壹年開始我國實行了進口燕窩溯源地二維碼驗證制度
  • 下一篇:誰能幫我解決壹下壹下的我問題哦
  • copyright 2024編程學習大全網