js二进制转换

String转换成Blob对象

//将字符串 转换成 Blob 对象
var blob = new Blob(["Hello World!"], {
    type: 'text/plain'
});
console.info(blob);
console.info(blob.slice(1, 3, 'text/plain'));

 

TypeArray转换成 Blob对象  

//将 TypeArray  转换成 Blob 对象
var array = new Uint16Array([97, 32, 72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33]);
//测试成功
//var blob = new Blob([array], { type: "application/octet-binary" });
//测试成功, 注意必须[]的包裹
var blob = new Blob([array]);
//将 Blob对象 读成字符串
var reader = new FileReader();
reader.readAsText(blob, 'utf-8');
reader.onload = function (e) {
    console.info(reader.result); //a Hello world!
}

 

ArrayBuffer转Blob

var buffer = new ArrayBuffer(32);
var blob = new Blob([buffer]);       // 注意必须包裹[]

 

将Blob对象转换成String字符串,使用FileReader的readAsText方法 

//将字符串转换成 Blob对象
var blob = new Blob(['中文字符串'], {
    type: 'text/plain'
});
//将Blob 对象转换成字符串
var reader = new FileReader();
reader.readAsText(blob, 'utf-8');
reader.onload = function (e) {
    console.info(reader.result);
}

 

将Blob对象转换成ArrayBuffer,使用FileReader的 readAsArrayBuffer方法  

//将字符串转换成 Blob对象
var blob = new Blob(['中文字符串'], {
    type: 'text/plain'
});
//将Blob 对象转换成 ArrayBuffer
var reader = new FileReader();
reader.readAsArrayBuffer(blob);
reader.onload = function (e) {
    console.info(reader.result); //ArrayBuffer {}
    //经常会遇到的异常 Uncaught RangeError: byte length of Int16Array should be a multiple of 2
    //var buf = new int16array(reader.result);
    //console.info(buf);

    //将 ArrayBufferView  转换成Blob
    var buf = new Uint8Array(reader.result);
    console.info(buf); //[228, 184, 173, 230, 150, 135, 229, 173, 151, 231, 172, 166, 228, 184, 178]
    reader.readAsText(new Blob([buf]), 'utf-8');
    reader.onload = function () {
        console.info(reader.result); //中文字符串
    };

    //将 ArrayBufferView  转换成Blob
    var buf = new DataView(reader.result);
    console.info(buf); //DataView {}
    reader.readAsText(new Blob([buf]), 'utf-8');
    reader.onload = function () {
        console.info(reader.result); //中文字符串
    };
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 JavaScript 中,可以使用 `toString()` 方法将一个数字转换二进制字符串,然后使用一些技巧来处理负数的情况。 下面是一个将负数转换二进制字符串的示例代码: ```javascript function toBinaryString(number) { if (number >= 0) { return number.toString(2); } else { // 将负数转换为补码表示 const positiveBinary = Math.abs(number).toString(2); const invertedBinary = positiveBinary.split('').map(bit => bit === '0' ? '1' : '0').join(''); let binaryString = ''; for(let i = invertedBinary.length - 1; i >= 0; i--) { if (invertedBinary[i] === '1') { binaryString = '1' + binaryString; break; } else { binaryString = '0' + binaryString; } } return '-' + binaryString; } } console.log(toBinaryString(10)); // 输出: "1010" console.log(toBinaryString(-10)); // 输出: "-1010" ``` 这段代码中,我们首先判断输入的数字是否为正数,如果是正数则直接使用 `toString(2)` 方法将其转换二进制字符串。对于负数,我们首先将其转换为补码表示。然后对补码字符串按位取反,并将结果保存在 `invertedBinary` 变量中。接下来,我们从右向左遍历 `invertedBinary`,找到第一个为 1 的位,将其之前的所有位都添加到 `binaryString` 中。最后,将 `-` 和 `binaryString` 拼接在一起,得到负数的二进制表示。 注意:这只是一个简单的示例代码,不考虑数据溢出等情况。在实际应用中,请根据具体需求进行适当的处理和验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值