Spaces:
Running
Running
Download BeadQR/miniprogram/utils/qrcore/numeric-data.js from Ethscriptions/cut: direct link, hf CLI and curl.
- Browser
- Download file 1.21 kB
-
https://huggingface.co/spaces/Ethscriptions/cut/resolve/main/BeadQR/miniprogram/utils/qrcore/numeric-data.js
- Command line
-
hf download hf://spaces/Ethscriptions/cut/BeadQR/miniprogram/utils/qrcore/numeric-data.js
-
curl -L -o numeric-data.js https://huggingface.co/spaces/Ethscriptions/cut/resolve/main/BeadQR/miniprogram/utils/qrcore/numeric-data.js
1.21 kB
| const Mode = require('./mode') | |
| function NumericData (data) { | |
| this.mode = Mode.NUMERIC | |
| this.data = data.toString() | |
| } | |
| NumericData.getBitsLength = function getBitsLength (length) { | |
| return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0) | |
| } | |
| NumericData.prototype.getLength = function getLength () { | |
| return this.data.length | |
| } | |
| NumericData.prototype.getBitsLength = function getBitsLength () { | |
| return NumericData.getBitsLength(this.data.length) | |
| } | |
| NumericData.prototype.write = function write (bitBuffer) { | |
| let i, group, value | |
| // The input data string is divided into groups of three digits, | |
| // and each group is converted to its 10-bit binary equivalent. | |
| for (i = 0; i + 3 <= this.data.length; i += 3) { | |
| group = this.data.substr(i, 3) | |
| value = parseInt(group, 10) | |
| bitBuffer.put(value, 10) | |
| } | |
| // If the number of input digits is not an exact multiple of three, | |
| // the final one or two digits are converted to 4 or 7 bits respectively. | |
| const remainingNum = this.data.length - i | |
| if (remainingNum > 0) { | |
| group = this.data.substr(i) | |
| value = parseInt(group, 10) | |
| bitBuffer.put(value, remainingNum * 3 + 1) | |
| } | |
| } | |
| module.exports = NumericData | |