Pack and unpack a range of a float into a limited number of bits.

Code functions that pack and unpack a range of a float into a limited number of bits.

unsigned int pack_float(float val, float minVal, float maxVal, int bits);

float unpack_float(unsigned int val, float minVal, float maxVal, int bits);

unsigned int pack_float(float val, float minVal, float maxVal, int bits)

{

    assert(bits >= 0 && bits < 32);

    assert(val >= minVal && val < maxVal);

    return (1U<<bits)*(val-minVal)/(maxVal-minVal);

}

float unpack_float(unsigned int val, float minVal, float maxVal, int bits)

{

    assert(bits >= 0 && bits < 32);

    assert(val < (1U<<bits));

    return val*(maxVal-minVal)/(1U<<bits)+minVal;

}

时间: 2024-10-25 14:29:07

Pack and unpack a range of a float into a limited number of bits.的相关文章

Python:struct模块的pack、unpack

mport struct pack.unpack.pack_into.unpack_from 1 # ref: http://blog.csdn<a href="http://lib.csdn.net/base/dotnet" class='replace_word' title=".NET知识库" target='_blank' style='color:#df3434; font-weight:bold;'>.NET</a>/JGood/

浅谈PHP中pack、unpack的详细用法

转自:https://segmentfault.com/a/1190000008305573 PHP中有两个函数pack和unpack,很多PHPer在实际项目中从来没有使用过,甚至也不知道这两个方法是用来干嘛的.这篇文章来为大家介绍一下它俩到底是用来干啥的. pack string pack ( string $format [, mixed $args [, mixed $... ]] ) 该函数用来将对应的参数($args)打包成二进制字符串. 其中第一个参数$format,有如下选项(可

perl中的pack与unpack

这个pack, unpack在 "perl语言编程" 有介绍 看起来很复杂 1 #把一个字符串转为十六进制格式 2 my $source = 'abcd'; 3 unpack('H*', $source); 4 #说明, 这个'H'是说明转化为十六进制, 后面的*是任意长度,也就是说, 它转化后多少就多少 5 #如果单纯写unpack('H', $source), 只显示转化后的十六进制的第一位字符 6 7 #比如你要把一个十六进制转为ASCII, 可以这样: 8 # 十六進位的字串

php pack、unpack、ord 函数使用方法(二进制流接口应用实例) 转

php pack.unpack.ord 函数使用方法(二进制流接口应用实例) 博客分类: PHP php二进制packunpackord 在工作中,我也逐渐了解到pack,unpack,ord对于二进制字节处理的强大. 下面我逐一介绍它们.在我们工作中,用到它们的估计不多. 我在最近一个工作中,因为通讯需要用到二进制流,然后接口用php接收.当时在处理时候,查阅不少资料.因为它们使用确实比较少,也很少朋友工作中会用到 它们. 在工作中,我也逐渐了解到pack,unpack,ord对于二进制字节处

Python使用struct处理二进制(pack和unpack用法)

转载自:http://www.cnblogs.com/gala/archive/2011/09/22/2184801.html 这篇文章写的很好,所以无耻的转了.. 有的时候需要用python处理二进制数据,比如,存取文件,socket操作时.这时候,可以使用python的struct模块来完成.可以用 struct来处理c语言中的结构体. struct模块中最重要的三个函数是pack(), unpack(), calcsize() ? # 四号程序员 http://www.coder4.com

weblogic pack和unpack

用于制作域模板,经常用于集群受管服务器的复制 命令位于:<middleware home> /oracle_common/common/bin <middleware home> /oracle_common/common/bin/pack.sh -managed=true -domain=<domain home> -template=<template location>/<domain name>.jar -template_name=&l

[PHP][位转换积累]之pack和unpack

http://my.oschina.net/goal/blog/195749?fromerr=pryT221q <?php $hex = unpack('H*','as'); var_dump( $hex ); var_dump( hexdec($hex[1]) ); var_dump( base_convert ( $hex[1] , 16 , 2 ) ); $bin = pack("a*", "da"); echo "output: "

php pack、unpack二进制流接口应用实例

在工作中,我也逐渐了解到pack,unpack,ord对于二进制字节处理的强大. 下面我逐一介绍它们.在我们工作中,用到它们的估计不多. 我在最近一个工作中,因为通讯需要用到二进制流,然后接口用php接收.当时在处理时候,查阅不少资料.因为它们使用确实比较少,也很少朋友工作中会用到它们. 在工作中,我也逐渐了解到pack,unpack,ord对于二进制字节处理的强大. 下面我逐一介绍它们. pacrk函数说明:本函数用来将资料压缩打包到位的字符串之中. 语法:pack(format,args+)

php中pack 与 unpack函数的用法

http://zengrong.net/post/1715.htm https://my.oschina.net/goal/blog/195749 a:NULL填充的字节串 A:空格填充的字节串 h:十六进制数,低四位字节优先 H:十六进制数,高四位字节优先 c:有符号字符 C:无符号字符 s:有符号短整型(总是16位,机器字节序) S:无符号短整型(总是16位,机器字节序) n:无符号短整型(总是16位,大尾字节序) v:无符号短整型(总是16位,小尾字节序) I:有符号整型(机器相关大小和字