add hw2
This commit is contained in:
		
							
								
								
									
										39
									
								
								node_modules/unbzip2-stream/lib/bit_iterator.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								node_modules/unbzip2-stream/lib/bit_iterator.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| var BITMASK = [0, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF]; | ||||
|  | ||||
| // returns a function that reads bits. | ||||
| // takes a buffer iterator as input | ||||
| module.exports = function bitIterator(nextBuffer) { | ||||
|     var bit = 0, byte = 0; | ||||
|     var bytes = nextBuffer(); | ||||
|     var f = function(n) { | ||||
|         if (n === null && bit != 0) {  // align to byte boundary | ||||
|             bit = 0 | ||||
|             byte++; | ||||
|             return; | ||||
|         } | ||||
|         var result = 0; | ||||
|         while(n > 0) { | ||||
|             if (byte >= bytes.length) { | ||||
|                 byte = 0; | ||||
|                 bytes = nextBuffer(); | ||||
|             } | ||||
|             var left = 8 - bit; | ||||
|             if (bit === 0 && n > 0) | ||||
|                 f.bytesRead++; | ||||
|             if (n >= left) { | ||||
|                 result <<= left; | ||||
|                 result |= (BITMASK[left] & bytes[byte++]); | ||||
|                 bit = 0; | ||||
|                 n -= left; | ||||
|             } else { | ||||
|                 result <<= n; | ||||
|                 result |= ((bytes[byte] & (BITMASK[n] << (8 - n - bit))) >> (8 - n - bit)); | ||||
|                 bit += n; | ||||
|                 n = 0; | ||||
|             } | ||||
|         } | ||||
|         return result; | ||||
|     }; | ||||
|     f.bytesRead = 0; | ||||
|     return f; | ||||
| }; | ||||
		Reference in New Issue
	
	Block a user
	 nik
					nik