Well, gee, we just need a recursive algorithm then! We just need that number which when you subtract it from itself, shifted left three places, gives the dividend. Actually, adding one works, but you have to do repeated right shifts to get all the bits into the final answer. x/7 = (x+1)>>3 + (x+1)>>6 + (x+1)>>9 + (x+1)>>12 + (x+1)>>15 In fact I tried it out, see table at bottom of post David Wouter van Ooijen wrote: >>This appears to be a rounding / trucation error. >>So, should we not initially add one to fix this? >> >> > >Adding one is OK for 7, but what about 14? Actually you must add X / 7, >which is the number I am after :) > >Wouter van Ooijen > >-- ------------------------------------------- >Van Ooijen Technische Informatica: www.voti.nl >consultancy, development, PICmicro products > >-- >http://www.piclist.com hint: To leave the PICList >mailto:piclist-unsubscribe-request@mitvma.mit.edu > > > x x+1 <<8 >>3 >>3 >>3 >>3 Sum >>256 x/7 1 2 512 64 8 1 0 73 0 0 2 3 768 96 12 1 0 109 0 0 3 4 1024 128 16 2 0 146 0 0 4 5 1280 160 20 2 0 182 0 0 5 6 1536 192 24 3 0 219 0 0 6 7 1792 224 28 3 0 255 0 0 7 8 2048 256 32 4 0 292 1 1 8 9 2304 288 36 4 0 328 1 1 9 10 2560 320 40 5 0 365 1 1 10 11 2816 352 44 5 0 401 1 1 11 12 3072 384 48 6 0 438 1 1 12 13 3328 416 52 6 0 474 1 1 13 14 3584 448 56 7 0 511 1 1 14 15 3840 480 60 7 0 547 2 2 15 16 4096 512 64 8 1 585 2 2 16 17 4352 544 68 8 1 621 2 2 17 18 4608 576 72 9 1 658 2 2 18 19 4864 608 76 9 1 694 2 2 19 20 5120 640 80 10 1 731 2 2 20 21 5376 672 84 10 1 767 2 2 21 22 5632 704 88 11 1 804 3 3 22 23 5888 736 92 11 1 840 3 3 23 24 6144 768 96 12 1 877 3 3 24 25 6400 800 100 12 1 913 3 3 25 26 6656 832 104 13 1 950 3 3 26 27 6912 864 108 13 1 986 3 3 27 28 7168 896 112 14 1 1023 3 3 28 29 7424 928 116 14 1 1059 4 4 29 30 7680 960 120 15 1 1096 4 4 30 31 7936 992 124 15 1 1132 4 4 31 32 8192 1024 128 16 2 1170 4 4 32 33 8448 1056 132 16 2 1206 4 4 33 34 8704 1088 136 17 2 1243 4 4 34 35 8960 1120 140 17 2 1279 4 4 35 36 9216 1152 144 18 2 1316 5 5 36 37 9472 1184 148 18 2 1352 5 5 37 38 9728 1216 152 19 2 1389 5 5 38 39 9984 1248 156 19 2 1425 5 5 39 40 10240 1280 160 20 2 1462 5 5 40 41 10496 1312 164 20 2 1498 5 5 41 42 10752 1344 168 21 2 1535 5 5 42 43 11008 1376 172 21 2 1571 6 6 43 44 11264 1408 176 22 2 1608 6 6 44 45 11520 1440 180 22 2 1644 6 6 45 46 11776 1472 184 23 2 1681 6 6 46 47 12032 1504 188 23 2 1717 6 6 47 48 12288 1536 192 24 3 1755 6 6 48 49 12544 1568 196 24 3 1791 6 6 49 50 12800 1600 200 25 3 1828 7 7 50 51 13056 1632 204 25 3 1864 7 7 51 52 13312 1664 208 26 3 1901 7 7 52 53 13568 1696 212 26 3 1937 7 7 53 54 13824 1728 216 27 3 1974 7 7 54 55 14080 1760 220 27 3 2010 7 7 55 56 14336 1792 224 28 3 2047 7 7 56 57 14592 1824 228 28 3 2083 8 8 57 58 14848 1856 232 29 3 2120 8 8 58 59 15104 1888 236 29 3 2156 8 8 59 60 15360 1920 240 30 3 2193 8 8 60 61 15616 1952 244 30 3 2229 8 8 61 62 15872 1984 248 31 3 2266 8 8 62 63 16128 2016 252 31 3 2302 8 8 63 64 16384 2048 256 32 4 2340 9 9 64 65 16640 2080 260 32 4 2376 9 9 65 66 16896 2112 264 33 4 2413 9 9 66 67 17152 2144 268 33 4 2449 9 9 67 68 17408 2176 272 34 4 2486 9 9 68 69 17664 2208 276 34 4 2522 9 9 69 70 17920 2240 280 35 4 2559 9 9 70 71 18176 2272 284 35 4 2595 10 10 71 72 18432 2304 288 36 4 2632 10 10 72 73 18688 2336 292 36 4 2668 10 10 73 74 18944 2368 296 37 4 2705 10 10 74 75 19200 2400 300 37 4 2741 10 10 75 76 19456 2432 304 38 4 2778 10 10 76 77 19712 2464 308 38 4 2814 10 10 77 78 19968 2496 312 39 4 2851 11 11 78 79 20224 2528 316 39 4 2887 11 11 79 80 20480 2560 320 40 5 2925 11 11 80 81 20736 2592 324 40 5 2961 11 11 81 82 20992 2624 328 41 5 2998 11 11 82 83 21248 2656 332 41 5 3034 11 11 83 84 21504 2688 336 42 5 3071 11 11 84 85 21760 2720 340 42 5 3107 12 12 85 86 22016 2752 344 43 5 3144 12 12 86 87 22272 2784 348 43 5 3180 12 12 87 88 22528 2816 352 44 5 3217 12 12 88 89 22784 2848 356 44 5 3253 12 12 89 90 23040 2880 360 45 5 3290 12 12 90 91 23296 2912 364 45 5 3326 12 12 91 92 23552 2944 368 46 5 3363 13 13 92 93 23808 2976 372 46 5 3399 13 13 93 94 24064 3008 376 47 5 3436 13 13 94 95 24320 3040 380 47 5 3472 13 13 95 96 24576 3072 384 48 6 3510 13 13 96 97 24832 3104 388 48 6 3546 13 13 97 98 25088 3136 392 49 6 3583 13 13 98 99 25344 3168 396 49 6 3619 14 14 99 100 25600 3200 400 50 6 3656 14 14 100 101 25856 3232 404 50 6 3692 14 14 101 102 26112 3264 408 51 6 3729 14 14 102 103 26368 3296 412 51 6 3765 14 14 103 104 26624 3328 416 52 6 3802 14 14 104 105 26880 3360 420 52 6 3838 14 14 105 106 27136 3392 424 53 6 3875 15 15 106 107 27392 3424 428 53 6 3911 15 15 107 108 27648 3456 432 54 6 3948 15 15 108 109 27904 3488 436 54 6 3984 15 15 109 110 28160 3520 440 55 6 4021 15 15 110 111 28416 3552 444 55 6 4057 15 15 111 112 28672 3584 448 56 7 4095 15 15 112 113 28928 3616 452 56 7 4131 16 16 113 114 29184 3648 456 57 7 4168 16 16 114 115 29440 3680 460 57 7 4204 16 16 115 116 29696 3712 464 58 7 4241 16 16 116 117 29952 3744 468 58 7 4277 16 16 117 118 30208 3776 472 59 7 4314 16 16 118 119 30464 3808 476 59 7 4350 16 16 119 120 30720 3840 480 60 7 4387 17 17 120 121 30976 3872 484 60 7 4423 17 17 121 122 31232 3904 488 61 7 4460 17 17 122 123 31488 3936 492 61 7 4496 17 17 123 124 31744 3968 496 62 7 4533 17 17 124 125 32000 4000 500 62 7 4569 17 17 125 126 32256 4032 504 63 7 4606 17 17 126 127 32512 4064 508 63 7 4642 18 18 127 128 32768 4096 512 64 8 4680 18 18 128 129 33024 4128 516 64 8 4716 18 18 129 130 33280 4160 520 65 8 4753 18 18 130 131 33536 4192 524 65 8 4789 18 18 131 132 33792 4224 528 66 8 4826 18 18 132 133 34048 4256 532 66 8 4862 18 18 133 134 34304 4288 536 67 8 4899 19 19 134 135 34560 4320 540 67 8 4935 19 19 135 136 34816 4352 544 68 8 4972 19 19 136 137 35072 4384 548 68 8 5008 19 19 137 138 35328 4416 552 69 8 5045 19 19 138 139 35584 4448 556 69 8 5081 19 19 139 140 35840 4480 560 70 8 5118 19 19 140 141 36096 4512 564 70 8 5154 20 20 141 142 36352 4544 568 71 8 5191 20 20 142 143 36608 4576 572 71 8 5227 20 20 143 144 36864 4608 576 72 9 5265 20 20 144 145 37120 4640 580 72 9 5301 20 20 145 146 37376 4672 584 73 9 5338 20 20 146 147 37632 4704 588 73 9 5374 20 20 147 148 37888 4736 592 74 9 5411 21 21 148 149 38144 4768 596 74 9 5447 21 21 149 150 38400 4800 600 75 9 5484 21 21 150 151 38656 4832 604 75 9 5520 21 21 151 152 38912 4864 608 76 9 5557 21 21 152 153 39168 4896 612 76 9 5593 21 21 153 154 39424 4928 616 77 9 5630 21 21 154 155 39680 4960 620 77 9 5666 22 22 155 156 39936 4992 624 78 9 5703 22 22 156 157 40192 5024 628 78 9 5739 22 22 157 158 40448 5056 632 79 9 5776 22 22 158 159 40704 5088 636 79 9 5812 22 22 159 160 40960 5120 640 80 10 5850 22 22 160 161 41216 5152 644 80 10 5886 22 22 161 162 41472 5184 648 81 10 5923 23 23 162 163 41728 5216 652 81 10 5959 23 23 163 164 41984 5248 656 82 10 5996 23 23 164 165 42240 5280 660 82 10 6032 23 23 165 166 42496 5312 664 83 10 6069 23 23 166 167 42752 5344 668 83 10 6105 23 23 167 168 43008 5376 672 84 10 6142 23 23 168 169 43264 5408 676 84 10 6178 24 24 169 170 43520 5440 680 85 10 6215 24 24 170 171 43776 5472 684 85 10 6251 24 24 171 172 44032 5504 688 86 10 6288 24 24 172 173 44288 5536 692 86 10 6324 24 24 173 174 44544 5568 696 87 10 6361 24 24 174 175 44800 5600 700 87 10 6397 24 24 175 176 45056 5632 704 88 11 6435 25 25 176 177 45312 5664 708 88 11 6471 25 25 177 178 45568 5696 712 89 11 6508 25 25 178 179 45824 5728 716 89 11 6544 25 25 179 180 46080 5760 720 90 11 6581 25 25 180 181 46336 5792 724 90 11 6617 25 25 181 182 46592 5824 728 91 11 6654 25 25 182 183 46848 5856 732 91 11 6690 26 26 183 184 47104 5888 736 92 11 6727 26 26 184 185 47360 5920 740 92 11 6763 26 26 185 186 47616 5952 744 93 11 6800 26 26 186 187 47872 5984 748 93 11 6836 26 26 187 188 48128 6016 752 94 11 6873 26 26 188 189 48384 6048 756 94 11 6909 26 26 189 190 48640 6080 760 95 11 6946 27 27 190 191 48896 6112 764 95 11 6982 27 27 191 192 49152 6144 768 96 12 7020 27 27 192 193 49408 6176 772 96 12 7056 27 27 193 194 49664 6208 776 97 12 7093 27 27 194 195 49920 6240 780 97 12 7129 27 27 195 196 50176 6272 784 98 12 7166 27 27 196 197 50432 6304 788 98 12 7202 28 28 197 198 50688 6336 792 99 12 7239 28 28 198 199 50944 6368 796 99 12 7275 28 28 199 200 51200 6400 800 100 12 7312 28 28 200 201 51456 6432 804 100 12 7348 28 28 201 202 51712 6464 808 101 12 7385 28 28 202 203 51968 6496 812 101 12 7421 28 28 203 204 52224 6528 816 102 12 7458 29 29 204 205 52480 6560 820 102 12 7494 29 29 205 206 52736 6592 824 103 12 7531 29 29 206 207 52992 6624 828 103 12 7567 29 29 207 208 53248 6656 832 104 13 7605 29 29 208 209 53504 6688 836 104 13 7641 29 29 209 210 53760 6720 840 105 13 7678 29 29 210 211 54016 6752 844 105 13 7714 30 30 211 212 54272 6784 848 106 13 7751 30 30 212 213 54528 6816 852 106 13 7787 30 30 213 214 54784 6848 856 107 13 7824 30 30 214 215 55040 6880 860 107 13 7860 30 30 215 216 55296 6912 864 108 13 7897 30 30 216 217 55552 6944 868 108 13 7933 30 30 217 218 55808 6976 872 109 13 7970 31 31 218 219 56064 7008 876 109 13 8006 31 31 219 220 56320 7040 880 110 13 8043 31 31 220 221 56576 7072 884 110 13 8079 31 31 221 222 56832 7104 888 111 13 8116 31 31 222 223 57088 7136 892 111 13 8152 31 31 223 224 57344 7168 896 112 14 8190 31 31 224 225 57600 7200 900 112 14 8226 32 32 225 226 57856 7232 904 113 14 8263 32 32 226 227 58112 7264 908 113 14 8299 32 32 227 228 58368 7296 912 114 14 8336 32 32 228 229 58624 7328 916 114 14 8372 32 32 229 230 58880 7360 920 115 14 8409 32 32 230 231 59136 7392 924 115 14 8445 32 32 231 232 59392 7424 928 116 14 8482 33 33 232 233 59648 7456 932 116 14 8518 33 33 233 234 59904 7488 936 117 14 8555 33 33 234 235 60160 7520 940 117 14 8591 33 33 235 236 60416 7552 944 118 14 8628 33 33 236 237 60672 7584 948 118 14 8664 33 33 237 238 60928 7616 952 119 14 8701 33 33 238 239 61184 7648 956 119 14 8737 34 34 239 240 61440 7680 960 120 15 8775 34 34 240 241 61696 7712 964 120 15 8811 34 34 241 242 61952 7744 968 121 15 8848 34 34 242 243 62208 7776 972 121 15 8884 34 34 243 244 62464 7808 976 122 15 8921 34 34 244 245 62720 7840 980 122 15 8957 34 34 245 246 62976 7872 984 123 15 8994 35 35 246 247 63232 7904 988 123 15 9030 35 35 247 248 63488 7936 992 124 15 9067 35 35 248 249 63744 7968 996 124 15 9103 35 35 249 250 64000 8000 1000 125 15 9140 35 35 250 251 64256 8032 1004 125 15 9176 35 35 251 252 64512 8064 1008 126 15 9213 35 35 252 253 64768 8096 1012 126 15 9249 36 36 253 254 65024 8128 1016 127 15 9286 36 36 254 255 65280 8160 1020 127 15 9322 36 36 255 256 65536 8192 1024 128 16 9360 36 36 -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu