mirror of https://github.com/zeldaret/mm.git
				
				
				
			
		
			
				
	
	
		
			276 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
			
		
		
	
	
			276 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
| # Useful conversions
 | |
| 
 | |
| This article contains some useful conversion tables. Beware that we will omit the `0x` prefix on hex numbers: it will be evident from context which base is intended.
 | |
| 
 | |
| - [Degrees and hex/binary angles](#degrees-and-hex-binary-angles)
 | |
|     * [Small angles](#small-angles)
 | |
|     * [Larger angles](#larger-angles)
 | |
| - [Round decimal numbers in hex](#round-decimal-numbers-in-hex)
 | |
|     * [Small](#small)
 | |
|     * [Medium](#medium)
 | |
|     * [Large](#large)
 | |
| - [Extra large](#extra-large)
 | |
| - [Shifts/powers of 2 in dec and hex](#shifts-powers-of-2-in-dec-and-hex)
 | |
| 
 | |
| ## Degrees and hex/binary angles
 | |
| 
 | |
| Conversion of degrees to binary angles in the two common ways, that give different answers. Table is produced using this script:
 | |
| 
 | |
| ```bash
 | |
| $ printf "%s\t%s\t%s\n" "d" "d * 2^16/360" "2^16/360 * d" ; for i in {0..360..5} ; do printf "%d\t%X\t\t%X\n" "$i" $(( "$i" * 0x10000 / 360 )) $(( 0x10000 / 360 * "$i" )) ; done
 | |
| ```
 | |
| 
 | |
| ### Small angles
 | |
| 
 | |
| | `d`   | `d * 2^16/360` | `2^16/360 * d` |
 | |
| | ----: | -------------: | -------------: |
 | |
| | 0     | 0              | 0              |
 | |
| | 1     | B6             | B6             |
 | |
| | 2     | 16C            | 16C            |
 | |
| | 3     | 222            | 222            |
 | |
| | 4     | 2D8            | 2D8            |
 | |
| | 5     | 38E            | 38E            |
 | |
| | 6     | 444            | 444            |
 | |
| | 7     | 4FA            | 4FA            |
 | |
| | 8     | 5B0            | 5B0            |
 | |
| | 9     | 666            | 666            |
 | |
| | 10    | 71C            | 71C            |
 | |
| | 11    | 7D2            | 7D2            |
 | |
| | 12    | 888            | 888            |
 | |
| | 13    | 93E            | 93E            |
 | |
| | 14    | 9F4            | 9F4            |
 | |
| | 15    | AAA            | AAA            |
 | |
| | 16    | B60            | B60            |
 | |
| | 17    | C16            | C16            |
 | |
| | 18    | CCC            | CCC            |
 | |
| | 19    | D82            | D82            |
 | |
| | 20    | E38            | E38            |
 | |
| | 21    | EEE            | EEE            |
 | |
| | 22    | FA4            | FA4            |
 | |
| | 23    | 105B           | 105A           |
 | |
| | 24    | 1111           | 1110           |
 | |
| | 25    | 11C7           | 11C6           |
 | |
| | 26    | 127D           | 127C           |
 | |
| | 27    | 1333           | 1332           |
 | |
| | 28    | 13E9           | 13E8           |
 | |
| | 29    | 149F           | 149E           |
 | |
| | 30    | 1555           | 1554           |
 | |
| 
 | |
| ### Larger angles
 | |
| 
 | |
| | `d`    | `d * 2^16/360` | `2^16/360 * d` |
 | |
| | -----: | -------------: | -------------: |
 | |
| | 0      | 0              | 0              |
 | |
| | 5      | 38E            | 38E            |
 | |
| | 10     | 71C            | 71C            |
 | |
| | 15     | AAA            | AAA            |
 | |
| | 20     | E38            | E38            |
 | |
| | 25     | 11C7           | 11C6           |
 | |
| | 30     | 1555           | 1554           |
 | |
| | 35     | 18E3           | 18E2           |
 | |
| | 40     | 1C71           | 1C70           |
 | |
| | 45     | 2000           | 1FFE           |
 | |
| | 50     | 238E           | 238C           |
 | |
| | 55     | 271C           | 271A           |
 | |
| | 60     | 2AAA           | 2AA8           |
 | |
| | 65     | 2E38           | 2E36           |
 | |
| | 70     | 31C7           | 31C4           |
 | |
| | 75     | 3555           | 3552           |
 | |
| | 80     | 38E3           | 38E0           |
 | |
| | 85     | 3C71           | 3C6E           |
 | |
| | 90     | 4000           | 3FFC           |
 | |
| | 95     | 438E           | 438A           |
 | |
| | 100    | 471C           | 4718           |
 | |
| | 105    | 4AAA           | 4AA6           |
 | |
| | 110    | 4E38           | 4E34           |
 | |
| | 115    | 51C7           | 51C2           |
 | |
| | 120    | 5555           | 5550           |
 | |
| | 125    | 58E3           | 58DE           |
 | |
| | 130    | 5C71           | 5C6C           |
 | |
| | 135    | 6000           | 5FFA           |
 | |
| | 140    | 638E           | 6388           |
 | |
| | 145    | 671C           | 6716           |
 | |
| | 150    | 6AAA           | 6AA4           |
 | |
| | 155    | 6E38           | 6E32           |
 | |
| | 160    | 71C7           | 71C0           |
 | |
| | 165    | 7555           | 754E           |
 | |
| | 170    | 78E3           | 78DC           |
 | |
| | 175    | 7C71           | 7C6A           |
 | |
| | 180    | 8000           | 7FF8           |
 | |
| | 185    | 838E           | 8386           |
 | |
| | 190    | 871C           | 8714           |
 | |
| | 195    | 8AAA           | 8AA2           |
 | |
| | 200    | 8E38           | 8E30           |
 | |
| | 205    | 91C7           | 91BE           |
 | |
| | 210    | 9555           | 954C           |
 | |
| | 215    | 98E3           | 98DA           |
 | |
| | 220    | 9C71           | 9C68           |
 | |
| | 225    | A000           | 9FF6           |
 | |
| | 230    | A38E           | A384           |
 | |
| | 235    | A71C           | A712           |
 | |
| | 240    | AAAA           | AAA0           |
 | |
| | 245    | AE38           | AE2E           |
 | |
| | 250    | B1C7           | B1BC           |
 | |
| | 255    | B555           | B54A           |
 | |
| | 260    | B8E3           | B8D8           |
 | |
| | 265    | BC71           | BC66           |
 | |
| | 270    | C000           | BFF4           |
 | |
| | 275    | C38E           | C382           |
 | |
| | 280    | C71C           | C710           |
 | |
| | 285    | CAAA           | CA9E           |
 | |
| | 290    | CE38           | CE2C           |
 | |
| | 295    | D1C7           | D1BA           |
 | |
| | 300    | D555           | D548           |
 | |
| | 305    | D8E3           | D8D6           |
 | |
| | 310    | DC71           | DC64           |
 | |
| | 315    | E000           | DFF2           |
 | |
| | 320    | E38E           | E380           |
 | |
| | 325    | E71C           | E70E           |
 | |
| | 330    | EAAA           | EA9C           |
 | |
| | 335    | EE38           | EE2A           |
 | |
| | 340    | F1C7           | F1B8           |
 | |
| | 345    | F555           | F546           |
 | |
| | 350    | F8E3           | F8D4           |
 | |
| | 355    | FC71           | FC62           |
 | |
| | 360    | 10000          | FFF0           |
 | |
| 
 | |
| Similarly for small angles with a smaller increment:
 | |
| 
 | |
| 
 | |
| 
 | |
| ## Round decimal numbers in hex
 | |
| 
 | |
| ```bash
 | |
| printf "%s\t%s\n" "dec" "hex" ; for i in {0..100..5} ; do printf "%d\t%X\n" "$i" "$i" ; done
 | |
| ```
 | |
| 
 | |
| ### Small
 | |
| 
 | |
| | dec    | hex |
 | |
| | -----: | --: |
 | |
| | 0      | 0   |
 | |
| | 5      | 5   |
 | |
| | 10     | A   |
 | |
| | 15     | F   |
 | |
| | 20     | 14  |
 | |
| | 25     | 19  |
 | |
| | 30     | 1E  |
 | |
| | 35     | 23  |
 | |
| | 40     | 28  |
 | |
| | 45     | 2D  |
 | |
| | 50     | 32  |
 | |
| | 55     | 37  |
 | |
| | 60     | 3C  |
 | |
| | 65     | 41  |
 | |
| | 70     | 46  |
 | |
| | 75     | 4B  |
 | |
| | 80     | 50  |
 | |
| | 85     | 55  |
 | |
| | 90     | 5A  |
 | |
| | 95     | 5F  |
 | |
| | 100    | 64  |
 | |
| 
 | |
| 
 | |
| ### Medium
 | |
| 
 | |
| | dec    | hex  |
 | |
| | -----: | ---: |
 | |
| | 100    | 64   |
 | |
| | 150    | 96   |
 | |
| | 200    | C8   |
 | |
| | 250    | FA   |
 | |
| | 300    | 12C  |
 | |
| | 350    | 15E  |
 | |
| | 400    | 190  |
 | |
| | 450    | 1C2  |
 | |
| | 500    | 1F4  |
 | |
| | 550    | 226  |
 | |
| | 600    | 258  |
 | |
| | 650    | 28A  |
 | |
| | 700    | 2BC  |
 | |
| | 750    | 2EE  |
 | |
| | 800    | 320  |
 | |
| | 850    | 352  |
 | |
| | 900    | 384  |
 | |
| | 950    | 3B6  |
 | |
| | 1000   | 3E8  |
 | |
| 
 | |
| 
 | |
| ### Large
 | |
| 
 | |
| | dec    | hex   |
 | |
| | -----: | ----: |
 | |
| | 1000   | 3E8   |
 | |
| | 1500   | 5DC   |
 | |
| | 2000   | 7D0   |
 | |
| | 2500   | 9C4   |
 | |
| | 3000   | BB8   |
 | |
| | 3500   | DAC   |
 | |
| | 4000   | FA0   |
 | |
| | 4500   | 1194  |
 | |
| | 5000   | 1388  |
 | |
| | 5500   | 157C  |
 | |
| | 6000   | 1770  |
 | |
| | 6500   | 1964  |
 | |
| | 7000   | 1B58  |
 | |
| | 7500   | 1D4C  |
 | |
| | 8000   | 1F40  |
 | |
| | 8500   | 2134  |
 | |
| | 9000   | 2328  |
 | |
| | 9500   | 251C  |
 | |
| | 10000  | 2710  |
 | |
| 
 | |
| 
 | |
| ## Extra large
 | |
| | dec    | hex   |
 | |
| | -----: | ----: |
 | |
| | 10000  | 2710  |
 | |
| | 11000  | 2AF8  |
 | |
| | 12000  | 2EE0  |
 | |
| | 13000  | 32C8  |
 | |
| | 14000  | 36B0  |
 | |
| | 15000  | 3A98  |
 | |
| | 16000  | 3E80  |
 | |
| | 17000  | 4268  |
 | |
| | 18000  | 4650  |
 | |
| | 19000  | 4A38  |
 | |
| | 20000  | 4E20  |
 | |
| | 21000  | 5208  |
 | |
| | 22000  | 55F0  |
 | |
| | 23000  | 59D8  |
 | |
| | 24000  | 5DC0  |
 | |
| | 25000  | 61A8  |
 | |
| | 26000  | 6590  |
 | |
| | 27000  | 6978  |
 | |
| | 28000  | 6D60  |
 | |
| | 29000  | 7148  |
 | |
| | 30000  | 7530  |
 | |
| 
 | |
| ## Shifts/powers of 2 in dec and hex
 | |
| 
 | |
| ```bash
 | |
| $ printf "%s\t%s\t%s\n" "n" "1 << n (hex)" "1 << n (dec)" ; for i in {0..15..1} ; do printf "%d\t%X\t\t%d\n" "$i" $(( 1 << "$i" )) $(( 1 << "$i" )) ; done
 | |
| ```
 | |
| `1 << n` is the same as `2^n`.
 | |
| 
 | |
| | `n`    | `1 << n` (hex) | `1 << n` (dec) |
 | |
| | -----: | -------------: | -------------: |
 | |
| | 0      | 1              | 1              |
 | |
| | 1      | 2              | 2              |
 | |
| | 2      | 4              | 4              |
 | |
| | 3      | 8              | 8              |
 | |
| | 4      | 10             | 16             |
 | |
| | 5      | 20             | 32             |
 | |
| | 6      | 40             | 64             |
 | |
| | 7      | 80             | 128            |
 | |
| | 8      | 100            | 256            |
 | |
| | 9      | 200            | 512            |
 | |
| | 10     | 400            | 1024           |
 | |
| | 11     | 800            | 2048           |
 | |
| | 12     | 1000           | 4096           |
 | |
| | 13     | 2000           | 8192           |
 | |
| | 14     | 4000           | 16384          |
 | |
| | 15     | 8000           | 32768          |
 | |
|  
 | |
| 
 |