dea*_*mon 4 java bit-manipulation
short permissions = 0755;
short requested = 0700;
short result = permissions & requested;
Run Code Online (Sandbox Code Playgroud)
我收到编译器错误:
error possible loss of precision
found : int
required: short
Run Code Online (Sandbox Code Playgroud)
如果我不完全错误,二进制AND的结果与最长的操作数一样长.为什么结果是整数?
如果我能做空,会不会有性能受损?
(short) permissions & requested
Run Code Online (Sandbox Code Playgroud)
如果我没有完全错的话,二进制 AND 的结果与最长的操作数一样长。为什么结果是整数?
因为Java语言规范规定非长整型算术的结果始终是int。它可能是这样写的,因为承认 32 位 CPU 无论如何内部都是这样工作的——它们实际上没有办法用 Shorts 进行算术。
如果我投得太短,性能会受到影响吗?
出于上述原因:不 - 无论如何它都必须发生。
| 归档时间: |
|
| 查看次数: |
1974 次 |
| 最近记录: |