I am using Naudio and I have a stream which I need to read as array and then when I have found maximum I need to multiply each value with ( 1/ biggest ) and then I should have values in my array as [-1,1].
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
I don't see really what you mean by "convert", but instead of the code you wrote you could just do:
var bytes = stream.ToArray();
var biggest = (float)bytes.Max();
var floats = bytes.Select(b => b / biggest).ToArray();
This will result with floats between 0 and 1, since bytes are always positive.
回答2:
float to short:
float num1; short num6 = (short)num1;
http://www.convertdatatypes.com/Convert-short-to-byte-in-CSharp.html
http://www.c-sharpcorner.com/uploadfile/mahesh/convert-long-short-single-to-byte-array-in-C-Sharp/