我正在查看一些c ++代码,我发现了这个:
if( (size & 0x03L) != 0 )
throw MalformedBundleException( "bundle size must be multiple of four" );
十六进制值后L
代表什么?
它如何改变值0x03
?
答案 0 :(得分:7)
这意味着长,如文字0x03L的类型是long
而不是默认的int
。在某些平台上,这意味着64位而不是32位,但这完全取决于平台(唯一的保证是long不短于int)。
答案 1 :(得分:6)
此后缀设置数字文字的类型。 L
代表long
; LL
代表long long
类型。该数字不需要是十六进制 - 它也适用于小数和八进制。
3LL // A decimal constant 3 of type long long
03L // An octal constant 3 of type long
0x3L // A hex constant 3 of type long
答案 2 :(得分:1)
它表示所谓的整数文字的长后缀,表示文字的类型为int long
示例中的整数文字是类型为int long
的十六进制整数文字。
您还可以遇到两个LL
(或ll
),表示类型int long long