> Linux 2.6.32-279.5.2.el6.x86_64 #1 SMP Tue Aug 14 11:36:39 EDT 2012 > x86_64 x86_64 x86_64 GNU/Linux One might ask why you would post a GNU/Linux question (with no identification) in an HP-UX forum, when there is a similar GNU/Linux form not far away. > 0x1FF is a 32-bit integer on any compiler Perhaps for some values of "any". Some of us are old enough to remember 16-bit systems. (Or 8.) > Do you know where can newer version of asn1.cpp be downloaded? I don't know what it is, or where you found the first one. Have you tried a Web search? My Google search for "asn1.cpp" easily found one with: mask = 0x1FFul << ((8 * (sizeof(long) - 1)) - 1); and another with: mask = u_long (0x1FF) << ((8 * (sizeof(u_long) - 1)) - 1); so I'd say that this problem has been solved already (in different ways by different people). You should be better able than I to find and select one which satisfies your needs.