既然文件都是二进制那转成十进制按科学计数法不就能极限压缩吗?
既然文件都是二进制那转成十进制按科学计数法不就能极限压缩吗? 请问1234567890用科学计数法如何写? 本帖最后由 owouwu 于 2023-1-25 16:30 编辑你科学计数法那小数点后面的数字储存也要占用储存空间啊……
建议看一看香农的论文《A Symbolic Analysis of Relay and Switching Circuits》和《A Mathematical Theory of Communication》再来讨论这个问题。 举个例子,比如00001111,二进制占用了1B空间。改写为你的方法:1.5*10^1,8个字符,需要8B空间。 转换成十进制按科学计数法压缩只是一个概念,实际实现起来还有很多难度,这只是一个让文件占用更少存储空间的方式,它并不能将文件所占空间尽可能压缩到最小。更多的是改变文件存储方式以节省空间,而不是去真正的压缩。 no、no、no
科学计数法,并不是一个好的压缩方法。不是么
3.8*10^256,相比38后面256个0,好像是压缩了,但这只是特例。
不知道的,还以为进了弱智吧呢,像回了家。 本帖最后由 老伙计 于 2023-1-26 13:05 编辑
问题的关键是,浮点数只能用来近似地表达数值,用浮点数表达整型数会带来舍入误差。
一般的浮点数只能保证7位有效数字精度,双精度数也只能保证16位数字精度,什么意思呢,如果用双精度浮点数来表达一个1000 位的整型数(不要较真,双精度浮点数的确表达不了这么大的数,只是为了方便说明问题,实际上,把 1000 改成 300 说明的道理是完全相同的),只需要用 8 个字节,即便是按文本方式用科学计数法表达,也只需要区区 21 个字符而已,看上去似乎是简洁了不少,但是,这样做的后果是,只有开头的16个数是有精度保证的,后面的984个数都是野的,也就是说,在把整型数浮点化的过程中,只保留了1000位数中前16位数的信息,后面984位数的信息并没有得到保留,对于一个数字而言,前16位数已经代表了整个数字的关键趋势,在很多情况下,其精度是可以被接受的,但是,对于信息编码而言,这种转换造成了绝大多数(98.4%)信息的丢失,从而使这一过程完全不可逆,也就是说,无法根据浮点数还原出原来的整型数。至此,楼主还要坚持认为用科学计数法是极限压缩文件的好方法吗? 1、存储在物理介质里,必须是二进制的,因为只有高低电平
2、必须有固定格式,八位一个字,就是格式,没有这个,你是不会知道哪里开始,哪里结束
3、现在向量图是以楼主说的类似的方法保存,但这个在修改与更新,读取写入等方面,都大大增加CPU的负担
4、计算机的算法,关键并不是某个点上最优,而是平衡后的最优。
5、据说。。。前苏联开发了三进制计算机,是当时的性能之王,无奈是没有产业链支持,日本也尝试开发自己的计算机架构,最后也是没实现商用。
问题在于:用计算机底层硬件实现存储一个数字,用高电平和低电平比测量一个电压的数值要可靠的多,如果是采用电压的话外界有一点电流噪音就寄了
页:
[1]