Simple hex excercises

controllers.js 2.6KB

    'use strict'; function MainController($scope, $routeParams) { $scope.allowedLengths = [4, 8, 16, 32, 64, 128, 256]; $scope.binaryLength = 64; $scope.binary = generateBinary($scope.binaryLength); $scope.parts = []; $scope.hex = ""; $scope.displayResults = function () { return $scope.hex.length > 0; }; $scope.generate = function () { $scope.binary = generateBinary($scope.binaryLength); $scope.parts = []; $scope.hex = ""; return false; }; $scope.solve = function () { $scope.parts = []; $scope.hex = ""; var original = $scope.binary; while (original.length > 0) { // Find the 16 bytes we need. var part = original.substr(-4); var character = binaryToHex(part); // Divvy this stuff up. $scope.parts.push({ "binary": part, "hex": character }); $scope.hex = character + $scope.hex; // Remove the last four. original = original.substr(0, original.length - 4); } return false; }; } function DumpController($scope, $routeParams) { $scope.columns = 16; $scope.fileApi = false; $scope.files = []; $scope.showFiles = function () { return $scope.files; }; // Check for the various File API support. if (window.File && window.FileReader && window.FileList && window.Blob) { // Great success! All the File APIs are supported. $(window).bind("dragover", function (e) { e.stopPropagation(); e.preventDefault(); e.originalEvent.dataTransfer.dropEffect = 'copy'; }); $(window).bind("drop", function(e) { e.stopPropagation(); e.preventDefault(); var files = e.originalEvent.dataTransfer.files; for (var i = 0, f; f = files[i]; i++) { var reader = new FileReader(); // Closure to capture the file information. reader.onload = (function(theFile) { return function(e) { var bytes = new Uint8Array(e.target.result); $scope.files.push({ "name": theFile.name, "bytes": bytes }); /*var c = 0; for (var i = 0; i < bytes.length; i++) { if (c++ >= 16) { $("#tabFile1").append("<br>"); c = 0; } $("#tabFile1").append(bytes[i].toString(16) + " "); }*/ }; })(f); // Read in the image file as a data URL. reader.readAsArrayBuffer(f); } }); } else { $scope.fileApi = false; alert('The File APIs are not fully supported in this browser.'); } }