在以下內容中:
2147483647U > -2147483647 - 1
由於轉換/升級爲無符號,它將評估爲false。
我的問題是,它會如何提升?
首先完成減法運算,結果將被提升爲無符號或每個操作數將被提升爲無符號?
實施例用4個比特[-8,7]進行簽名並[0,15]爲無符號:
7U > -7 -1
這會不會成爲(無符號)( - 7)+(無符號)( - 1)=(9U) +(15U)= 24U
所以我們結束了7U > 24U
這是錯誤的。
或者我們將有
-7-1 = -8 = 8U
所以7U > 8U
這是假的是否對結果或每個操作數進行無符號升級?
0
A
回答
2
這種表達
2147483647U > -2147483647 - 1
有兩個運營商,其中減去具有比邏輯更高的優先級>。
因此,在第一有計算子表達
-2147483647 - 1
的兩個操作數的類型是int。這是他們的共同類型。所以這兩項促銷都不會完成。你會得到
-2147483648
然後表達
2147483647U > -2147483648
進行評估。
這裏常見的類型是unsigned int。然而,在這種情況下,帶符號和無符號整數具有相同的等級,而通用類型是無符號整型。
在這個表達式中,右操作數的內部表示被解釋爲unsjgned值。所以如果它大於左操作數,那麼結果將等於假。
如果考慮這個例子
7U > -7 -1
然後-7 - 1
將等於-8。 -8內部表示是
1000
爲unsigned int它等於8。因此
7u > 8u
等於假。
相關問題
- 1. 對於wchar_t進行無符號短操作是否安全?反之亦然?
- 2. SQLAlchemy:對結果進行操作
- 3. 對字符串進行減號操作
- 4. 如果我想對結果集的每一行進行多次操作
- 5. 爲什麼MIPS在無符號數字上的操作會給符號結果?
- 6. 產品升級過程中是否運行卸載操作?
- 7. Bigtable是否將操作寫入日誌以進行每個操作或批量操作?
- 8. 互操作結構:如果無符號短映射到byte []?
- 9. 對每個節點的緩存數據進行操作
- 10. XSLT:分割一個字符串並對每個字符進行操作
- 11. 當源信號只是一個實數時對複數進行操作
- 12. 對2個數字進行按位操作以始終生成唯一結果?
- 13. Python的符號或操作 「**」
- 14. 升級或不升級 - 這是questiion
- 15. 會對一對有符號和無符號數進行算術運算是否合法?
- 16. 無法使用Android webview的結果進行操作?
- 17. Solr按查詢結果是否被另一個字段提升進行排序
- 18. 查找操作無結果
- 19. java.sql.SQLException:對空結果集進行非法操作。驗證
- 20. Kibana對結果的操作
- 21. C:使用無符號操作數的一元減操作符行爲
- 22. 每個設備都可以進行Android升級?
- 23. 位操作符與無符號字符
- 24. 對數組中的每個對象執行多個異步操作的意外結果
- 25. 在R中是否有文字處理函數在字級上進行操作?
- 26. git fetch是否對所有分支或僅當前分支進行操作?
- 27. C#0(減號)uint =無符號結果?
- 28. 每個操作方法是否需要發件人對象?
- 29. 是否可以對mysql數據庫中的每個數據庫執行查詢,並僅使用mysql命令環境對結果進行求和或求和?
- 30. 迭代一個numpy數組並對每個元素進行操作
@Cratylus沒有鑄造。有通常的算術轉換,它被應用於表達式的操作數。 – 2014-09-23 18:30:27