28 lines
		
	
	
		
			709 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			709 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| module.exports = function hexdump(ab) {
 | |
|   var ui8 = new Uint8Array(ab);
 | |
|   var bytecount = 0;
 | |
|   var head = '        0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F';
 | |
|   var trail;
 | |
|   var str = [].slice.call(ui8).map(function (i) {
 | |
|     var h = i.toString(16);
 | |
|     if (h.length < 2) {
 | |
|       h = '0' + h;
 | |
|     }
 | |
|     return h;
 | |
|   }).join('').match(/.{1,2}/g).join(' ').match(/.{1,48}/g).map(function (str) {
 | |
|     var lead = bytecount.toString(16);
 | |
|     bytecount += 16;
 | |
| 
 | |
|     while (lead.length < 7) {
 | |
|       lead = '0' + lead;
 | |
|     }
 | |
| 
 | |
|     return lead + ' ' + str;
 | |
|   }).join('\n');
 | |
|   trail = ab.byteLength.toString(16);
 | |
|   while (trail.length < 7) {
 | |
|     trail = '0' + trail;
 | |
|   }
 | |
|   return head + '\n' + str + '\n' + trail;
 | |
| };
 |