我想问我想将二进制数据转换为十六进制,然后才将其插入到我的表中。
var net = require(' net');
var server = net.createServer(function(socket){
socket.on('data',function(data){
var bindata= data.toString('binary');
//filter(bindata);
//if no error convert to hex.
var hexdata = bindata.toString('hex');
//insert hexdata here.
});
server.listen(3030,'127.0.0.1', function () {
console.log("server is listenining");
});
但问题是将插入二进制数据。
提前谢谢。
答案 0 :(得分:11)
parseInt("10101001", 2).toString(16)
// => "a9"
编辑:我想我误解了这个问题。您的data
以Buffer
开头,然后将其转换为字符串,然后您希望它为十六进制?如果是这样,请执行data.toString('hex')
。如果您已经操纵bindata
,则重建为缓冲区:
var bindata = data.toString('binary');
// do something with bindata
var hexdata = new Buffer(bindata, 'ascii').toString('hex');
答案 1 :(得分:0)
试试这个:
parseInt(" 1111",2).toString(16);
parseInt中的第二个参数是radix,它代表" 111"值为binary和toString(16)将其转换为十六进制。