📄 _small_power.c
字号:
#ifndef lintstatic char sccsid[] = "@(#)_small_power.c 1.1 92/07/30 SMI";#endif/* * Copyright (c) 1988 by Sun Microsystems, Inc. */#include "base_conversion.h" unsigned short _max_tiny_powers_ten = 4;unsigned short _tiny_powers_ten[] = {1, /* begin powers of 10 in * base 65536 */ /* 10**1 = */ 10, /* * 65536**0 */ /* 10**2 = */ 100, /* * 65536**1 */ /* 10**3 = */ 1000, /* * 65536**1 */0 } ;unsigned short _start_tiny_powers_ten[] = { 0, 1, 2, 3, 4,0}; /* end _start_tiny_powers_ten */unsigned short _leading_zeros_tiny_powers_ten[] = { 0, 0, 0, 0,0}; /* end _leading_zeros_tiny_powers_ten */unsigned short _max_tiny_powers_two = 16;unsigned short _tiny_powers_two[] = {1, /* begin powers of 2 in * base 10000 */ /* 2**1 = */ 2, /* * 10000**0 */ /* 2**2 = */ 4, /* * 10000**0 */ /* 2**3 = */ 8, /* * 10000**0 */ /* 2**4 = */ 16, /* * 10000**0 */ /* 2**5 = */ 32, /* * 10000**0 */ /* 2**6 = */ 64, /* * 10000**0 */ /* 2**7 = */ 128, /* * 10000**0 */ /* 2**8 = */ 256, /* * 10000**0 */ /* 2**9 = */ 512, /* * 10000**0 */ /* 2**10 = */ 1024, /* * 10000**0 */ /* 2**11 = */ 2048, /* * 10000**0 */ /* 2**12 = */ 4096, /* * 10000**0 */ /* 2**13 = */ 8192, /* * 10000**0 */ /* 2**14 = */ 6384, 1, /* * 10000**1 */ /* 2**15 = */ 2768, 3, /* * 10000**1 */0};unsigned short _start_tiny_powers_two[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18,0}; /* end _start_tiny_powers_two */unsigned short _max_small_powers_ten = 90;unsigned short _small_powers_ten[] = {1, /* begin powers of 10000 in * base 65536 */ /* 10000**1 = */ 10000, /* * 65536**0 */ /* 10000**2 = */ 57600, 1525, /* * 65536**1 */ /* 10000**3 = */ 4096, 54437, 232, /* * 65536**2 */ /* 10000**4 = 65536**1 * */ 28609, 34546, 35, /* * 65536**3 */ /* 10000**5 = 65536**1 * */ 25360, 24109, 27591, 5, /* * 65536**4 */ /* 10000**6 = 65536**1 * */ 41216, 52461, 7118, 54210, /* * 65536**4 */ /* 10000**7 = 65536**1 * */ 4096, 609, 15909, 52830, 8271, /* * 65536**5 */ /* 10000**8 = 65536**2 * */ 61313, 34220, 16731, 11629, 1262, /* * 65536**6 */ /* 10000**9 = 65536**2 * */ 40720, 45899, 1813, 31689, 38862, 192, /* * 65536**7 */ /* 10000**10 = 65536**2 * */ 24832, 47605, 49067, 23716, 61891, 25385, 29, /* * 65536**8 */ /* 10000**11 = 65536**2 * */ 4096, 285, 9232, 58239, 57170, 38515, 31729, 4, /* * 65536**9 */ /* 10000**12 = 65536**3 * */ 32577, 45355, 38512, 38358, 3651, 36101, 44841, /* * 65536**9 */ /* 10000**13 = 65536**3 * */ 56080, 45850, 37384, 3668, 12301, 38269, 18196, 6842, /* * 65536**10 */ /* 10000**14 = 65536**3 * */ 8448, 18701, 29652, 51080, 65023, 27172, 37903, 3192, 1044, /* * 65536**11 */ /* 10000**15 = 65536**3 * */ 4096, 37081, 37989, 16940, 55138, 17665, 39458, 9751, 20263, 159, /* * 65536**12 */ /* 10000**16 = 65536**4 * */ 7937, 49002, 60772, 28216, 38893, 55975, 63988, 59711, 20227, 24, /* * 65536**13 */ /* 10000**17 = 65536**4 * */ 5904, 8539, 12149, 36793, 43681, 12958, 60573, 21267, 35015, 46478, 3, /* * 65536**14 */ /* 10000**18 = 65536**4 * */ 57600, 63028, 53094, 12749, 18174, 21993, 48265, 14922, 59933, 4030, 37092, /* * 65536**14 */ /* 10000**19 = 65536**4 * */ 4096, 29077, 42481, 30581, 10617, 59493, 46251, 1892, 5557, 4505, 52391, 5659,/* * 65536**15 */ /* 10000**20 = 65536**5 * */ 52929, 10084, 25506, 6346, 61348, 31525, 52689, 61296, 27615, 15903, 40426, 863, /* * 65536**16 */ /* 10000**21 = 65536**5 * */ 21264, 53708, 60962, 25043, 64008, 31200, 50906, 9831, 56185, 43877, 36378, 50952, 131, /* * 65536**17 */ /* 10000**22 = 65536**5 * */ 41216, 15724, 12323, 26246, 59245, 58406, 46648, 13767, 11372, 15053, 61895, 48686, 7054, 20, /* * 65536**18 */ /* 10000**23 = 65536**5 * */ 4096, 25425, 24719, 55736, 8564, 12208, 3664, 51518, 17140, 61079, 30312, 2500, 30693, 4468, 3, /* * 65536**19 */ /* 10000**24 = 65536**6 * */ 36481, 57623, 45627, 58488, 53274, 7238, 2063, 31221, 62631, 25319, 35409, 25293, 54667, 30681, /* * 65536**19 */ /* 10000**25 = 65536**6 * */ 36624, 43054, 17160, 43698, 6780, 36385, 52800, 62346, 52747, 33988, 2855, 31979, 38083, 44325, 4681, /* * 65536**20 */ /* 10000**26 = 65536**6 * */ 24832, 39604, 33321, 54106, 42443, 60698, 47535, 24088, 45785, 18352, 47026, 40291, 5183, 35843, 24059, 714, /* * 65536**21 */ /* 10000**27 = 65536**6 * */ 4096, 9741, 31019, 65404, 27119, 57580, 26653, 42453, 19179, 26186, 42000, 1847, 62708, 14406, 12813, 247, 109, /* * 65536**22 */ /* 10000**28 = 65536**7 * */ 24129, 9598, 60989, 12011, 4842, 3874, 57395, 38141, 46606, 49307, 60792, 31833, 21440, 9318, 47123, 41461, 16, /* * 65536**23 */ /* 10000**29 = 65536**7 * */ 51984, 38977, 13448, 57354, 56264, 8962, 51839, 64773, 39323, 49783, 15587, 30924, 36601, 56615, 27581, 36454, 35254, 2, /* * 65536**24 */ /* 10000**30 = 65536**7 * */ 8448, 35340, 6075, 36516, 22191, 40873, 1607, 45622, 23883, 24544, 32988, 43530, 61694, 55616, 43150, 32976, 27418, 25379, /* * 65536**24 */ /* 10000**31 = 65536**7 * */ 4096, 31177, 3520, 59871, 10675, 50890, 19916, 24149, 23777, 11324, 41057, 14921, 56274, 30917, 19462, 54968, 47943, 38791, 3872, /* * 65536**25 */ /* 10000**32 = 65536**8 * */ 15873, 11925, 39177, 991, 14589, 3861, 58415, 9076, 62956, 54223, 56328, 50180, 45274, 48333, 32537, 42547, 9731, 59679, 590, /* * 65536**26 */ /* 10000**33 = 65536**8 * */ 1808, 42438, 63147, 20041, 7015, 11522, 28221, 1553, 22569, 60278, 6353, 64979, 24968, 8908, 56671, 15252, 61068, 20668, 10866, 90,/* * 65536**27 */ /* 10000**34 = 65536**8 * */ 57600, 34675, 37115, 10547, 29538, 8782, 13742, 2274, 49789, 48851, 34813, 1529, 63291, 20385, 21567, 26375, 17879, 54310, 4465, 49690, 13, /* * 65536**28 */ /* 10000**35 = 65536**8 * */ 4096, 7813, 24923, 28239, 10857, 6267, 57884, 1104, 13355, 12253, 10222, 25424, 29081, 42697, 59670, 36426, 11816, 5896, 28271, 6729, 6510, 2, /* * 65536**29 */ /* 10000**36 = 65536**9 * */ 11713, 63320, 64714, 46692, 19240, 27004, 38784, 53336, 45253, 51245, 27415, 30647, 7397, 1235, 20017, 4150, 44939, 54131, 54377, 23778, 20993, /* * 65536**29 */ /* 10000**37 = 65536**9 * */ 17168, 58491, 47197, 51410, 58964, 34615, 2072, 33950, 12058, 30921, 20731, 27847, 50068, 30360, 23244, 18766, 10281, 55033, 26067, 23689, 21820, 3203, /* * 65536**30 */ /* 10000**38 = 65536**9 * */ 41216, 3819, 54189, 42817, 20452, 63381, 15905, 23836, 64476, 12991, 24350, 10699, 54745, 44887, 53976, 33978, 52415, 25776, 41725, 46873, 34270, 51761, 488, /* * 65536**31 */ /* 10000**39 = 65536**9 * */ 4096, 54337, 38934, 31580, 54213, 14464, 3799, 7995, 20469, 27486, 35742, 38963, 29424, 22289, 12353, 49612, 63792, 14909, 51757, 22894, 19408, 11901, 38234, 74, /* * 65536**32 */ /* 10000**40 = 65536**10 * */ 11649, 64451, 53492, 21026, 10320, 46863, 62195, 22291, 5139, 56386, 23933, 54841, 6553, 63577, 14364, 146, 5334, 34483, 30649, 31397, 65121, 4791, 24938, 11, /* * 65536**33 */ /* 10000**41 = 65536**10 * */ 32528, 30753, 25002, 28674, 49544, 49174, 20510, 31554, 13177, 54576, 1131, 8404, 2368, 6264, 60325, 20399, 59254, 45917, 48925, 57236, 49094, 13120, 16251, 48269, 1, /* * 65536**34 */ /* 10000**42 = 65536**10 * */ 24832, 40051, 4852, 23815, 57751, 30951, 45359, 52825, 47454, 43738, 46135, 23020, 22786, 53481, 57611, 51172, 32136, 33825, 30766, 41577, 18557, 4419, 48258, 19839, 17365, /* * 65536**34 */ /* 10000**43 = 65536**10 * */ 4096, 23293, 29471, 58452, 10401, 57820, 20066, 36761, 1884, 65513, 48769, 44607, 60376, 39716, 56720, 23702, 44800, 23607, 39177, 14310, 43928, 21567, 39106, 19891, 48163, 2649, /* * 65536**35 */ /* 10000**44 = 65536**11 * */ 15681, 63698, 8912, 13287, 42995, 63126, 21637, 36777, 32431, 46620, 39425, 49174, 21052, 57516, 50478, 65056, 16163, 64930, 40889, 59911, 63262, 9978, 14207, 8971, 20805, 404, /* * 65536**36 */ /* 10000**45 = 65536**11 * */ 47888, 38008, 759, 29888, 35867, 23808, 45296, 50805, 43483, 47380, 58073, 29407, 25871, 19276, 30504, 57366, 28150, 37314, 20803, 51663, 10133, 43861, 55010, 58919, 40104, 45478, 61, /* * 65536**37 */ /* 10000**46 = 65536**11 * */ 8448, 44043, 59159, 35955, 61568, 58720, 44336, 21839, 6392, 46891, 22733, 18829, 43895, 22571, 38397, 28046, 31633, 47847, 24429, 12886, 19227, 44634, 63044, 29753, 34206, 31815, 27115, 9, /* * 65536**38 */ /* 10000**47 = 65536**11 * */ 4096, 29369, 3248, 28531, 40302, 6834, 17920, 30813, 25732, 895, 58307, 8540, 58281, 10713, 63556, 37314, 57543, 62026, 44628, 19951, 54878, 42773, 56026, 6179, 32156, 43475, 32422, 28601, 1, /* * 65536**39 */ /* 10000**48 = 65536**12 * */ 23809, 44161, 32287, 43489, 57637, 25618, 47998, 30365, 41030, 61880, 15488, 65191, 53068, 59042, 53249, 29613, 36076, 54840, 25225, 50116, 50437, 64798, 63636, 41326, 54618, 20041, 15843, 14364, /* * 65536**39 */ /* 10000**49 = 65536**12 * */ 63248, 32064, 46402, 63566, 53051, 8570, 63781, 29035, 49273, 15348, 27874, 25771, 44955, 14273, 19009, 46477, 54374, 256, 10304, 10057, 12591, 33264, 15327, 65230, 9281, 9246, 32546, 53041, 2191, /* * 65536**40 */ /* 10000**50 = 65536**12 * */ 57600, 47538, 30012, 33416, 5779, 52543, 14955, 35252, 34782, 2206, 17734, 26701, 42508, 64987, 37777, 57124, 60435, 12392, 17447, 39348, 16878, 46721, 51907, 22530, 20977, 55656, 9634, 32118, 29069, 334, /* * 65536**41 */ /* 10000**51 = 65536**12 * */ 4096, 56181, 37909, 62051, 57882, 28769, 4865, 4138, 25827, 45211, 65456, 19041, 17578, 21510, 30412, 33988, 51260, 645, 15059, 4518, 30804, 6431, 32009, 60688, 58237, 31488, 10572, 55070, 42740, 2099, 51, /* * 65536**42 */ /* 10000**52 = 65536**13 * */ 36033, 38348, 20936, 15516, 61328, 26677, 27526, 58791, 46612, 58866, 37907, 15353, 13530, 36242, 14944, 48130, 35293, 53906, 27993, 21489, 23884, 13157, 21524, 26364, 53942, 15236, 2605, 48147, 25001, 51568, 7, /* * 65536**43 */ /* 10000**53 = 65536**13 * */ 13072, 34362, 43867, 39482, 62015, 47837, 12870, 56280, 36938, 22760, 18758, 50472, 36038, 7984, 23450, 5896, 25984, 31785, 33969, 1727, 30095, 42892, 21783, 57492, 62742, 62566, 34532, 42941, 63042, 46566, 12332, 1, /* * 65536**44 */ /* 10000**54 = 65536**13 * */ 41216, 16746, 42795, 37829, 54392, 32198, 60131, 44331, 27691, 64644, 19440, 30126, 5237, 22651, 13410, 46714, 56195, 4364, 21762, 39215, 8951, 57008, 60416, 41531, 52644, 62917, 20362, 23397, 35768, 36339, 53889, 11881, /* * 65536**44 */ /* 10000**55 = 65536**13 * */ 4096, 21809, 2475, 22738, 42508, 9931, 22113, 33671, 27164, 62657, 30087, 59510, 11332, 18383, 16800, 1438, 51464, 1598, 41146, 51432, 59343, 49237, 57850, 17586, 61185, 32432, 9248, 9587, 53618, 63873, 58552, 1454, 1813, /* * 65536**45 */ /* 10000**56 = 65536**14 * */ 52353, 46255, 35993, 16973, 29446, 13051, 54942, 63953, 49984, 3784, 37711, 17336, 3249, 34037, 30179, 51547, 62604, 25235, 65286, 9367, 7087, 21241, 35739, 8587, 57208, 13652, 57779, 31446, 24325, 31122, 65478, 42285, 276, /* * 65536**46 */ /* 10000**57 = 65536**14 * */ 28432, 4900, 13346, 62788, 9341, 32317, 33703, 38095, 6686, 33355, 16433, 23034, 52325, 42047, 1913, 33965, 47993, 45952, 59754, 29017, 27013, 8905, 25433, 23293, 17566, 17241, 26707, 27088, 50702, 58783, 14572, 21719, 13940, 42, /* * 65536**47 */ /* 10000**58 = 65536**14 * */ 24832, 48946, 29451, 47156, 30780, 13409, 48819, 59910, 19092, 38316, 36337, 49003, 14090, 64544, 65439, 42739, 15054, 54427, 55299, 51245, 60571, 56233, 51678, 18936, 27074, 53000, 13430, 23787, 37637, 45352, 42441, 5919, 8242, 28911, 6, /* * 65536**48 */ /* 10000**59 = 65536**14 * */ 4096, 40941, 64220, 32973, 50139, 8040, 14382, 42873, 22773, 39457, 44262, 22872, 5077, 43622, 22888, 39729, 10329, 61353, 5536, 32454, 34107, 40362, 37220, 34381, 13673, 14499, 24823, 41905, 381, 16623, 5784, 17468, 42151, 31961, 64411, /* * 65536**48 */ /* 10000**60 = 65536**15 * */ 7233, 18983, 28183, 44631, 60514, 35242, 61218, 64477, 46754, 61412, 6113, 48626, 13158, 34944, 14260, 11326, 49080, 56977, 6572, 25608, 54516, 27214, 13823, 27150, 26454, 47380, 16603, 15306, 30762, 39784, 27442, 50649, 62895, 27068, 9828, /* * 65536**49 */ /* 10000**61 = 65536**15 * */ 43792, 38847, 28096, 14140, 52922, 42161, 13601, 36173, 16014, 54814, 59818, 49348, 56667, 4055, 64532, 15967, 2624, 7505, 61622, 31850, 35459, 42846, 18728, 51997, 40846, 44292, 34541, 35973, 61887, 41173, 26838, 31979, 8736, 25917, 45666, 1499, /* * 65536**50 */ /* 10000**62 = 65536**15 * */ 8448, 44810, 13095, 43135, 18957, 24987, 29233, 38891, 41071, 64875, 41291, 3047, 53274, 57398, 53162, 34150, 28036, 11680, 51673, 4442, 45100, 56578, 50185, 10233, 47582, 33944, 42038, 8166, 19041, 42291, 16362, 43951, 5391, 41989, 9106, 54760, 228, /* * 65536**51 */ /* 10000**63 = 65536**15 * */ 4096, 31657, 15909, 59582, 46469, 49660, 43252, 23836, 1822, 15403, 43099, 2060, 63857, 23840, 726, 16, 2203, 19126, 45958, 60012, 47461, 14593, 49481, 35961, 30201, 36316, 37275, 8558, 29166, 9097, 48597, 28080, 46114, 1670, 36903, 48109, 60131, 34, /* * 65536**52 */ /* 10000**64 = 65536**16 * */ 31745, 38958, 34651, 48851, 40818, 55513, 12167, 4629, 20678, 27614, 28272, 53066, 55311, 54677, 29038, 9906, 26288, 44486, 13860, 7445, 54106, 15426, 21518, 25599, 29632, 52309, 61207, 26105, 10482, 21948, 51191, 32988, 60892, 62574, 61390, 24540, 21495, 5, /* * 65536**53 */ /* 10000**65 = 65536**16 * */ 59152, 38859, 27112, 9943, 29246, 46308, 43654, 23440, 14626, 39987, 1909, 19322, 59793, 11591, 63863, 39534, 16615, 5643, 63684, 3218, 61456, 62047, 27665, 9667, 35650, 51705, 37277, 29451, 31919, 1535, 11653, 45123, 30057, 11563, 33836, 42583, 61200, 53279, /* * 65536**53 */ /* 10000**66 = 65536**16 * */ 57600, 36081, 3497, 16025, 39885, 7086, 11770, 49925, 52760, 37095, 25125, 20163, 48020, 51475, 48984, 36592, 22272, 6039, 27549, 11541, 29419, 50065, 32011, 8621, 51171, 41935, 9121, 62440, 34173, 19446, 7226, 16418, 28789, 29082, 64932, 47770, 31329, 57194, 8129, /* * 65536**54 */ /* 10000**67 = 65536**16 * */ 4096, 43109, 44817, 15013, 349, 21670, 63961, 64083, 42817, 24290, 56172, 45097, 20804, 37583, 31790, 39986, 34255, 34742, 43113, 5307, 657, 24985, 39815, 35044, 6227, 58480, 55822, 39919, 34823, 19902, 42295, 13422, 58393, 41160, 59285, 18003, 35209, 12108, 34087, 1240, /* * 65536**55 */ /* 10000**68 = 65536**17 * */ 60353, 41409, 59398, 18882, 38037, 47482, 28751, 33090, 30117, 14650, 25355, 35617, 49750, 56134, 29714, 64965, 18890, 39493, 57954, 17209, 26868, 22612, 25083, 16147, 23222, 58811, 18741, 43323, 58017, 49228, 8725, 6288, 42830, 17624, 11654, 33355, 40380, 19111, 18897, 189, /* * 65536**56 */ /* 10000**69 = 65536**17 * */ 8976, 42761, 33550, 19847, 1937, 17484, 10813, 13123, 37129, 31635, 58987, 51244, 21658, 31751, 8341, 61702, 35160, 12946, 11178, 1307, 50562, 24899, 27178, 58659, 28415, 59015, 51549, 39899, 51938, 47956, 29095, 32307, 23199, 20231, 19681, 39074, 37793, 13185, 32628, 57875, 28, /* * 65536**57 */ /* 10000**70 = 65536**17 * */ 41216, 54505, 27740, 32111, 39908, 55783, 63803, 28577, 30562, 13393, 50827, 23016, 56875, 56920, 53052, 65368, 8774, 31765, 43095, 30041, 9959, 26451, 6007, 46947, 60390, 2655, 58365, 14697, 13288, 41013, 43013, 47495, 63025, 3907, 8479, 17371, 55386, 62870, 43803, 6562, 26687, 4, /* * 65536**58 */ /* 10000**71 = 65536**17 * */ 4096, 58913, 59964, 53368, 36195, 59193, 45551, 42775, 29992, 44615, 40363, 5323, 32104, 28518, 14765, 32031, 62806, 63882, 55646, 65087, 45399, 8223, 43060, 36548, 58459, 17134, 52325, 47193, 40770, 7739, 23490, 17171, 63071, 20160, 52548, 40893, 17914, 21603, 62505, 25147, 8409, 44072, /* * 65536**58 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -