Home » Extra libraries, Code snippets, applications etc. » C++ language problems and code snippets » Time for little quiz!
Re: Time for little quiz! [message #2252 is a reply to message #2251] |
Wed, 05 April 2006 12:04   |
 |
mirek
Messages: 14256 Registered: November 2005
|
Ultimate Member |
|
|
gprentice wrote on Wed, 05 April 2006 05:20 |
luzr wrote on Wed, 05 April 2006 20:54 | PS, note this nice gem as well:
x.colorcount += (-q >> 31) & 1;

Mirek
|
Do you feel like explaining?
I'm sure you know that right shift of a signed negative value has an implementation defined result and that int isn't always 32 bits and ... why would you write obscure code like this ???
Graeme
|
To avoid conditional jump in inner loop:
I need
if(q) colorcount++;
Now I know that q is positive number or zero. By negating positive number, you obviously get 1 in the highest bit. By negating zero, you get zero...
BTW, U++ guarantees int to be at least 32 bits (in other words, it requires it as well Also, right shift is implementation defined, however it guarantees that it is a shift... (I mean, what is implementation defined is content of high bits, but obviously, existing bits have to be shifted...)
On the similar theme:
inline byte Saturate255(int x) { return byte(~(x >> 24) & (x | (-(x >> 8) >> 24)) & 0xff); }
jump-less equivalent of min(max(x, 0), 255) (important in image processing).
Mirek
[Updated on: Wed, 05 April 2006 12:05] Report message to a moderator
|
|
|
 |
|
Time for little quiz!
By: mirek on Tue, 04 April 2006 14:02
|
 |
|
Re: Time for little quiz!
By: unodgs on Tue, 04 April 2006 19:12
|
 |
|
Re: Time for little quiz!
|
 |
|
Re: Time for little quiz!
By: fudadmin on Tue, 04 April 2006 20:04
|
 |
|
Re: Time for little quiz!
By: mirek on Tue, 04 April 2006 20:36
|
 |
|
Re: Time for little quiz!
By: victorb on Wed, 05 April 2006 10:21
|
 |
|
Re: Time for little quiz!
By: mirek on Wed, 05 April 2006 10:53
|
 |
|
Re: Time for little quiz!
By: mirek on Wed, 05 April 2006 10:54
|
 |
|
Re: Time for little quiz!
|
 |
|
Re: Time for little quiz!
By: mirek on Wed, 05 April 2006 12:04
|
 |
|
Re: Time for little quiz!
By: hojtsy on Wed, 05 April 2006 14:26
|
 |
|
Re: Time for little quiz!
By: victorb on Wed, 05 April 2006 14:52
|
 |
|
Re: Time for little quiz!
By: mirek on Wed, 05 April 2006 14:56
|
 |
|
Re: Time for little quiz!
By: victorb on Wed, 05 April 2006 15:04
|
 |
|
Re: Time for little quiz!
By: hojtsy on Wed, 05 April 2006 15:50
|
 |
|
Re: Time for little quiz!
By: mirek on Wed, 05 April 2006 17:42
|
 |
|
Re: Time for little quiz!
By: mirek on Wed, 05 April 2006 14:53
|
 |
|
Re: Time for little quiz!
|
 |
|
Re: Time for little quiz!
By: mirek on Thu, 06 April 2006 15:56
|
 |
|
Re: Time for little quiz!
By: victorb on Thu, 06 April 2006 16:17
|
 |
|
Re: Time for little quiz!
By: mirek on Thu, 06 April 2006 16:25
|
 |
|
Re: Time for little quiz!
By: nixnixnix on Tue, 02 September 2008 00:04
|
 |
|
Re: Time for little quiz!
By: mirek on Tue, 02 September 2008 08:56
|
 |
|
Re: Time for little quiz!
By: nixnixnix on Tue, 02 September 2008 21:54
|
 |
|
Re: Time for little quiz!
By: mirek on Wed, 03 September 2008 14:18
|
 |
|
Re: Time for little quiz!
By: nixnixnix on Wed, 03 September 2008 16:38
|
 |
|
Re: Time for little quiz!
By: mrjt on Wed, 03 September 2008 16:51
|
 |
|
Re: Time for little quiz!
By: mirek on Sun, 07 September 2008 10:12
|
 |
|
Re: Time for little quiz!
|
 |
|
Re: Time for little quiz!
By: mirek on Wed, 05 April 2006 13:14
|
Goto Forum:
Current Time: Wed Apr 30 20:34:24 CEST 2025
Total time taken to generate the page: 0.01152 seconds
|