[fpc-pascal] two small ?s - high(real) and nearest 2^x

David Emerson dle3ab at angelbase.com
Sat Oct 10 19:14:01 CEST 2009


1. Is there a way to get the highest and lowest real values? I can do 
high(longint) but high(real) gives me an error. Also of interest is a 
low(real) value (-m * 10^n) as distinct from the smallest real value
(m * 10^-n)

2. For the purposes of reserving memory in block sizes that can be 
easily reallocated, I like to use powers of two. So if I have, e.g., a 
dynamic array, I might start with a size of 1024 and then double it 
when it hits capacity. Hopefully this smoothes memory management, as I 
am using a lot of memory...

Anyway, what I'd like is a simple function that can quickly identify the 
next power-of-two larger than an arbitrary number. So if I feed the 
function 472, it will return 512. Thus far I haven't been able to 
figure out how to do this without a big if-then-else nest. Is there 
some clever way to request that the processor return the position of 
the leftmost '1' in 00101101?

Thanks!
~David.




More information about the fpc-pascal mailing list