我正在使用Rad Studio,c ++ builder。 AnsiString大小的大小约为2 ^ 31个字符。我该如何检查长度?
History
答案 0 :(得分:-1)
正如我在reference中看到的那样,Delete
的两个参数均为int
,其最大值低于2^31
。你似乎不需要这样的检查。
无论如何,如果你想获得2
的整数幂,你可以使用二元移位算子:
1ull << 31
二进制移位运算符以所有位在所需方向上移位的方式处理整数位。例如,
Operation Bits Shifted bits 10-based
1 << 1 00000001 00000010 2
1 << 2 00000001 00000100 4
4 << 2 00000100 00010000 16
等等。因此1ull << 31
是2^31
。 ull
表示我们使用64位数字,因为int
对于它来说很小。
要使用Delete删除剩余尾部,它应该像
ExportFileName.Delete(1 << 10, ExportFileName.Length());
或
ExportFileName.SetLength(1 << 10);
可能你不需要事先检查长度。只需Delete
或SetLength
。如果它已经满足,则不会执行任何操作。