double转换为二进制
arctan 在verilog 里是1qn或2qn格式,所以要把浮点数转换成1qn格式
1、dec2bin(十进制整数变为二进制)
Convert decimal to binary number in string
Syntax
str = dec2bin(d)
str = dec2bin(d,n)
Description
returns the
str = dec2bin(d) binary representation of d as a string. d must be a nonnegative integer smaller than 2^52.
str = dec2bin(d,n) produces a binary representation with at least n bits.
The output of dec2bin is independent of the endian settings of the computer you are using.
2参考:https://zhidao.baidu.com/question/431648565.html?qbl=relate_question_0
这两个都是我收集的,验证过没问题
方案一:
%函数(1)含小数的十进制,会调用函数二
function y=f_d2b(n)
strn=strtrim(num2str(n));
p=length(strn);
if isempty(find(strn=='.'))
y=d2b(n); %这里
return;
else
for i=1:p
if find(strn(i)=='.')
k=i;
break;
end
end
%Retrieving INTEGER and FRACTIONAL PARTS as strings
i_part=strn(1:k-1);
f_part=strn(k:end);
%Converting the strings back to numbers
ni_part=str2num(i_part);
nf_part=str2num(f_part);
ni_part=d2b(ni_part);
strtemp='';
temp=nf_part;
t='1';s='0';
while nf_part>= 0
nf_part=nf_part*2;
if (nf_part==1) || (nf_part==temp)
strtemp=strcat(strtemp,t);
break;
elseif nf_part>1
strtemp=strcat(strtemp,t);
nf_part=nf_part-1;
else
strtemp=strcat(strtemp,s);
end
end
if ni_part==0
y=strcat('0.',strtemp);
else
y=strcat(ni_part,'.',strtemp);
end
end
%%%%%%%%%%%
%函数(2)转换整数部分
function y=d2b(n)
strtemp='';
strn=strtrim(num2str(n));
if n<0
fprintf(' %f is not a valid number\n',n)
end
while n~=0
strtemp=strcat(num2str(mod(n,2)),strtemp);
n=floor(n/2);
end
y=strtemp;
方案二:
function Mydec2bin(x)
%x----------the decimal number
%
%Recod of version:
% Date Programmer Description of change
% ======= ========= =================
% 9/26/2009 Iptest Original code
flag=x>0;T=abs(x);T1=fix(T);T2=T-T1;flag1=T1>0;flag2=T2>0;
i=1;j=1;
%for positive number
%integer part origin code
if flag1==1;
flag3=1;
while T1>0
N0(i)=mod(T1,2);T1=fix(T1/2);
i=i+1;
end
n=length(N0);
for ii=1:n
N(ii)=N0(n-ii+1);
end
else
N=[];flag3=0;
end
%point part origin code
if flag2==1;
flag4=1;
while T2~=0 %maybe come out no ending situation
M(j)=(T2*2>1)*fix(T2*2)+(T2*2==1);
T2=(T2*2>1)*(T2*2-1)+(T2*2<1)*T2*2;
j=j+1;
end
else
M=[];flag4=0;
end
%for real situation
if flag==1%for positive number
if flag3==1;
disp('integer part origin code');
disp(N);
disp('integer part reverse code:');
disp(N);
else
disp('Not have integer part !');
end
if flag4==0;
disp('Not have point part !');
else
disp('point part origin code:');
disp(M);
disp('point part reverse code:');
disp(M);
end
else %for negative number
N=[1 N];
if flag1==1
if flag3==1;
disp('integer part origin code');
disp(N);
disp('integer part reverse code:');
N1=[N(1) ~N(2:end)];
disp(N1);
else
disp('Not have integer part !');
end
if flag4==0;
disp('Not have point part !');
else
disp('point part origin code:');
disp(M);
disp('point part reverse code:');
M1=[~M];
disp(M1);
end
else
disp('integer part reverse code for symbol code:');
disp(N);
if flag4==0;
disp('Not have point part !');
else
disp('point part origin code:');
disp(M);
disp('point part reverse code:');
M1=[~M];
disp(M1);
end
end
end
disp ('if there have some problem for the code please turn it out,thanks!')
double转换为二进制的更多相关文章
- double转换为int以及浮点型相加损失精度问题
最近在做支付相关模块的业务,数据库字段却使用的是double类型,其实也行,只要计算不在sql语句中进行,也是没有问题的. 预先的类属性设置的是Double类型,自己算的时候发现小数相加会出现损失精度 ...
- 将十进制数据转换为二进制AND将二进制数据转换为十进制!
一,将十进制数据转换为二进制: //*********************************************** Console.WriteLine(&quo ...
- java_十进制数转换为二进制,八进制,十六进制数的算法
java_十进制数转换为二进制,八进制,十六进制数的算法 java Ê®½øÖÆÊýת»»Îª¶þ½øÖÆ,°Ë½øÖÆ,Ê®Áù½øÖÆÊýµÄË㕨 using System; using S ...
- Java中实现十进制数转换为二进制的三种思路
Java中实现十进制数转换为二进制 第一种:除基倒取余法 这是最符合我们平时的数学逻辑思维的,即输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2...依次循环,直到商为0结束,把余数倒 ...
- java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果
package com.llh.demo; import java.util.Scanner; /** * * @author llh * */ public class Test { /* * 将任 ...
- 【转载】C#将图片转换为二进制流调用
在C#中可以使用MemoryStream类.BinaryFormatter类等来操作图片,将图片读取到二进制数据流中,最终转成二进制数据流进行调用,详细的实现如下方法所示. private byte[ ...
- javascript 十进制转换为二进制
1.十进制转换为二进制 var toBin = (n) => { if(n == 0) return '0'; var res = ''; while(n != 0) { res = n % 2 ...
- php 将16进制数串转换为二进制数据的函数
/** * 将16进制数串转换为二进制数据的函数 * @param $hexdata * @return string bindata */ function ...
- 深度学习原理与框架-Tfrecord数据集的制作 1.tf.train.Examples(数据转换为二进制) 3.tf.image.encode_jpeg(解码图片加码成jpeg) 4.tf.train.Coordinator(构建多线程通道) 5.threading.Thread(建立单线程) 6.tf.python_io.TFR(TFR读入器)
1. 配套使用: tf.train.Examples将数据转换为二进制,提升IO效率和方便管理 对于int类型 : tf.train.Examples(features=tf.train.Featur ...
随机推荐
- AI 数值计算
数值计算,通过迭代来更新解的估计值. 1.上溢和下溢 实数按照一定的精度存储在计算机中,通常存在误差,进而可能导致一些错误. 1)下溢(underflow),例如接近0的数 2)上溢(overflow ...
- git安装配置
1.git 安装 sudo apt-get install git 2.配置本机git的两个重要信息,user.name和user.email git config --global user.nam ...
- C#中的位的或运算的理解
如果懂位的运算,看到下面这2个程序执行的结果,会很容易理解,如果像我这样的菜鸟,刚接触开始肯定也觉得晕晕的,|= 这是什么运算符? |=就是位的或运算符,下面还是用上面的程序来讲解一下,为什么上面2个 ...
- [拍摄]日本AVENIR 6-36mm老式变焦镜头拆解 型号SSL06036M
老式监控摄像头的变焦镜头,做工不错,拆了分享一下 品牌:AVENIR型号:SSL06036M光圈:1:1.2产地:日本焦距:6-36mm 外观 图片:QQ截图20141104125759.jpg 图片 ...
- ASP.NET Core读取AppSettings (转载)
今天在把之前一个ASP.NET MVC5的Demo项目重写成ASP.NET Core,发现原先我们一直用的ConfigurationManager.AppSettings[]读取Web.config中 ...
- Spring Boot 之属性读写详解
SpringBoot 之属性读写详解 加载 property 顺序 随机属性 命令行属性 Application 属性文件 Profile 特定属性 属性中的占位符 YAML 属性 访问属性 多 pr ...
- WPF,ListView设置分组
原文:WPF,ListView设置分组 今天遇到一个问题,就是在ListView中设置分组.想了很久在网上早了些资料作出一个例子. 分组字段也可以在后台中定义: CollectionView view ...
- 【php增删改查实例】第二十一节 - 用户修改功能
19.1 添加用户修改的按钮 打开userManage.html,找到新增按钮的地方: 我们不难发现,编辑按钮就差不多应该在新建用户的右边. 那么,假如我现在是新人,对这个项目本身就不太熟悉,那么我得 ...
- Error【0006】:could not create or update nagios.configtest
1. 错误背景 在本系列博客<Nagios监控系统部署(源码).md>中(笔记内链:Nagios监控系统部署(源码).md,博客园地址:https://www.cnblogs.com/li ...
- list 的 增 删
增: 1. name = [] 2. name.append() 3. name.extend(name2) name2为可迭代的 name + name2 与之效果一样,合并为一个列表 4. nam ...