在以下内容中:
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. 是无符号long int对此操作是否正确?
- 5. 如果我想对结果集的每一行进行多次操作
- 6. “aptitude upgrade”命令是否对Debian执行完全升级或安全升级?
- 7. 产品升级过程中是否运行卸载操作?
- 8. 为什么MIPS在无符号数字上的操作会给符号结果?
- 9. Bigtable是否将操作写入日志以进行每个操作或批量操作?
- 10. 对bash中find命令的多个结果进行操作
- 11. 是否可以对Ruby操作进行字符串/队列化?
- 12. Oracle - 对结果集的每一行执行操作
- 13. LEA是否执行有符号或无符号算术?
- 14. 无符号和有符号整数的结果是否有相似之处?
- 15. 对于重载操作符=返回无效是否是复制操作符?
- 16. 互操作结构:如果无符号短映射到byte []?
- 17. 对每个节点的缓存数据进行操作
- 18. XSLT:分割一个字符串并对每个字符进行操作
- 19. 当源信号只是一个实数时对复数进行操作
- 20. 对2个数字进行按位操作以始终生成唯一结果?
- 21. 在计算每个字符数后,我需要对结果进行排序
- 22. Python的符号或操作 “**”
- 23. 如果BIOS升级,ASHWID是否更改?
- 24. 升级或不升级 - 这是questiion
- 25. 如果对变量进行操作
- 26. 会对一对有符号和无符号数进行算术运算是否合法?
- 27. Solr按查询结果是否被另一个字段提升进行排序
- 28. 无法使用Android webview的结果进行操作?
- 29. 每秒向SSD进行多次小写操作是否安全?
- 30. 对于字符操作数,第一个和最后一个操作数冒号操作必须是char
@Cratylus没有铸造。有通常的算术转换,它被应用于表达式的操作数。 – 2014-09-23 18:30:27