matlab中定点数16位转为14位,如何使用python将浮点数转换为具有预定义位数的固定点...
如果您了解IEEE浮点符号的工作原理,则可以这样做.基本上,您需要转换为python LONG,执行按位运算符,然后隐式返回.例如:
import time,struct,math
long2bits = lambda L: ("".join([str(int(1 << i & L > 0)) for i in range(64)]))[::-1]
double2long = lambda d: struct.unpack("Q",struct.pack("d",d))[0]
double2bits = lambda d: long2bits(double2long(d))
long2double = lambda L: struct.unpack('d',struct.pack('Q',L))[0]
bits2double = lambda b: long2double(bits2long(b))
bits2long=lambda z:sum([bool(z[i] == '1')*2**(len(z)-i-1) for i in range(len(z))[::-1]])
>>> pi = 3.1415926
>>> double2bits(pi)
'0100000000001001001000011111101101001101000100101101100001001010'
>>> bits2long('1111111111111111000000000000000000000000000000000000000000000000')
18446462598732840960L
>>> double2long(pi)
4614256656431372362
>>> long2double(double2long(pi) & 18446462598732840960L)
3.125
>>>
def rshift(x,n=1):
while n > 0:
x = 9223372036854775808L | (x >> 1)
n -= 1
return x
>>> L = bits2long('1'*12 + '0'*52)
>>> L
18442240474082181120L
>>> long2double(rshift(L,0) & double2long(pi))
2.0
>>> long2double(rshift(L,1) & double2long(pi))
3.0
>>> long2double(rshift(L,4) & double2long(pi))
3.125
>>> long2double(rshift(L,7) & double2long(pi))
3.140625
但是,这只会截断位数,而不会舍入它们. rshift函数是必需的,因为python的右移运算符用零填充最左边的空位.请参阅IEEE浮点here的说明.
matlab中定点数16位转为14位,如何使用python将浮点数转换为具有预定义位数的固定点...相关推荐
- matlab p文件转码 matlab pcode文件 将matlab中的p文件转为m文件工具
matlab p文件转码 matlab pcode文件 将matlab中的p文件转为m文件工具 源码可见,解密P ID:22600679158222577美丽小飞侠大队
- java 中 10进制 转为 4位 或者8位 16进制数
int i =789; //输出为16进制数 Integer.toHexString(), String s=Integer.toHexString(Integer.valueOf(value)); ...
- matlab修改图片位深度_BMP位图32位转为24位深度
帮朋友做一个视频采集和基本处理功能,要求的是.bmp格式 几天下来,通过directshow进行视频采集,并抓去图片保存,按照要求进行业务处理,以前的处理程序是基于RGB24 而显示器是32位真彩色, ...
- Office——安装从32位转为64位
首先自己的机子是64位的,之前不知道怎么回事转了一个32 位的Office,虽然也没什么问题,但是还是希望安装64位的Office 本来以为很简单,卸载安装不就可以了,谁曾想? 无法安装,这个错误出现 ...
- Matlab中eig内置函数转为C语言
本文记录一下如何将MATLAB中的eig函数转为C语言,即通过C语言求解矩阵的特征值与特征向量.[V,D]=eig(Rx)中V为矩阵Rx的特征向量,D为矩阵的特征值.其中Rx维度为12*12的复矩阵. ...
- 【JavaScript】JS处理32位整型位运算
由上一篇leetcode题目(反转整数)中所涉及到的js整型范围,针对js如何处理32位整数运算原理以作扩展: 1.32位整数运算 首先要清楚,在JS中无论是整数还是小数都是按照64位的浮点数形式存储 ...
- matlab中exp(liangx),Matlab基础知识
<Matlab基础知识>由会员分享,可在线阅读,更多相关<Matlab基础知识(122页珍藏版)>请在人人文库网上搜索. 1.Lxy, China Jiliang Univer ...
- PythonStock(13):使用stockstats计算股票中的16个常用指标方法大全
前言 使用Python开发一个股票项目. 项目地址: https://github.com/pythonstock/stock 相关资料: http://blog.csdn.net/freewebsy ...
- 【C/C++】中的__FILE__、__LINE__、#line、__func__关键字(预定义宏)
c++11预先定义了一些标识符,其实也就是宏.现在简单说几个: 1.__FILE__用于指示本行语句所在源文件的文件名,如下(test.c): #include <stdio.h> voi ...
最新文章
- 【Oracle Database】数据库用户管理
- 1003. 我要通过!(20)
- (LeetCode 21)Merge Two Sorted Lists
- SQL Server:APPLY表运算符
- C++之------虚函数
- php插入word图片,如何在PHPOffice / PHPWord模板上添加/设置图像?
- python基础入门学习笔记 (2)
- java中什么是字节流和字符流_java中字节流与字符流的区别是什么
- 从ASP.NET Core 3.1中的当前URL获取主机信息
- micropython中文教程.pdf_micropython中文教程
- 同网关劫持与不同网关劫持实例
- Mac编译OpenJDK8:configure: error: Xcode 4 is required to build JDK 8, the version found was 10.1config
- 列线图计算每个患者得分,并生成Roc曲线。
- 树莓派USB摄像头的使用
- 表白网页制作_表白网页_创意表白_表白神器
- 新能源车动力总成技术探讨:混动和纯电之争、电驱动未来发展趋势
- wifi密码公式计算机,用定积分知识破译wifi密码,数学知识什么时候能派上用场?...
- 利用OpencvSharp计算工件移动后,机器人旋转中心(抓取位置)
- 解决C/C++报错error: cannot pass objects of non-trivially-copyable type ‘std::string’问题
- Qt中添加背景图片的方法
热门文章
- 教你如何在google上查阅一个方位的经纬度
- java线程交替执行_Java synchronized线程交替运行实现过程详解
- vs安装 c语言编译环境,Visual Studio Code安装与C/C++开发调试环境搭建
- 如何用孩子兄弟表示法存储树c语言,C语言,数据结构,树的孩子兄弟表示法,程序一切正常,但是有个问题不太懂了,园豆不多,帮帮忙,求助一下....
- python使用停用词表过滤词
- 新型冠状病毒肺炎国内分省分日期从1.16起的全部数据爬取与整理代码(附下载)
- grafana官方使用文档_5. Centos7 下部署使用 nmon2influxdb
- php网页如何做出透明的效果,css+filter实现简单的图片透明效果
- vb子程序未定义怎么改怎么办_vb中子程序或者函数未定义!求教解决方案,
- JDBC之数据库的连接步骤(六步)