delphi7怎么把二进制的数换算成十进制?二进制带小数的
整数部分不断除以2,求得余数(倒序:最后求得的放最前)排列 ,直到商为0为止;纯小数部分不断乘以2,得出的结果的个位数按正序排列,直到纯小数各位都为零或者精确到的第N位小数左边的各位都为零为止。
方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分
为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数,下面举例:
例1:将0.125换算为二进制
得出结果:将0.125换算为二进制(0.001)2
分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25;
第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5;
第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0;
第四步,读数,从第一位读起,读到最后一位,即为0.001。
var
j,k: integer;
m1,m2: Extended;
s1,s2, s3, s4:string;
begin
if i >= 0 then
s3 := '0'
else
begin
i := -i ;
s3 := '1';
end;
j := trunc(i);
s1:=' ';
s2:=' ';
while j>=2 do
begin
if (j mod 2) =1 then
begin
s1:='1'+s1;
j:=j div 2;
end
else
begin
s1:='0'+s1;
j:=j div 2;
end;
end;
s1:=chr(ord('0')+j) + s1;
s4 := Trim(s3+s1);
if trunc(i)<> i then
begin
s2 := '';
m1:= i-trunc(i);
k := length(floattostr(m1))-2;
m2 := m1 * power(10,k);
k := trunc(m2);
while k>=2 do
begin
if (k mod 2) =1 then
begin
s2:='1'+s2;
k:=k div 2;
end
else
begin
s2:='0'+s2;
k:=k div 2;
end;
end;
s2:=chr(ord('0')+k) + s2;
s4 := Trim(s4 + '.' + s2);
end;
octtobin := s4;
end;
佳能ixy digital l4具体功能
又是佳能的把戏:在美国的名称为:PowerShot SD40 Digital ELPH;欧洲及中国的名称为:Digital IXUS i7;亚洲的名称为:IXY Digital L4。普通的DC,基本的功能都有;似乎你对DC不是很熟悉,如果在这里复制、粘贴大把的资料我想也没有必要。既然是相同的机型,建议你搜索下 IXUS I7吧 相信对你一定有帮...
佳能ixus怎么分几代几款呢?
佳能IXUS(你好色彩)系列主要面对时尚用户,其产品特点为轻薄、小巧、美观,深为女性消费者钟爱。该系列在日本的型号是IXY,而在美洲和其它地区采用的型号分别是ELPH和IXUS。
啤酒鸭怎么做法
详情请查看视频回答
佳能ixus出厂顺序是什么?
佳能IXUS(你好色彩)系列主要面对时尚用户,其产品特点为轻薄、小巧、美观,深为女性消费者钟爱。该系列在日本的型号是IXY,而在美洲和其它地区采用的型号分别是ELPH和IXUS。
倪质先希: 十进制转换为二进制函数function octtobin(i:Extended):string; {十进制转换为二进制函数} var j,k: integer; m1,m2: Extended; s1,s2, s3, s4:string; beginif i >= 0 thens3 := '0'elsebegini := -i ;s3 := '1';end;j := trunc(i);s1:=' ';s2:=' ';while j>=2 ...
增城市13291219602: 很头痛的问题:delphi中如何处理二进制数?
倪质先希: 最笨的办法:varbeginResult := 0;LoopCounter:Integer;function BinToInt(InStr:String):Integer;for LoopCounter := 1 to Length(Instr) do Result := Result + Trunc( StrToInt(InStr[LoopCounter]) * Power(2, Length(InStr)-LoopCounter ) );end;我已经测试经由过程了..
增城市13291219602: Delphi中如何表示二进制数 - ?
倪质先希: 在 delphi 中没有表示八进制、二进制的方法.建议将二进制转为16进制,用16进制表示吧.delphi 中表示16进制的方式是 加美元符号作为前导.例如:$FF 表示 无符号的255、有符号短整型的 -1 .
增城市13291219602: delphi十进制到二进制和十六进制转换程序(不用函数调用的)? - ?
倪质先希: procedure TForm1.Button1Click(Sender: TObject); var s1,s2:string; //s1是10进制,s2是二进制 ,把s1转成s2 m:integer; begin s1:=edit1.text; m:=strtoint(s1); while m0 do begin if m=(m div 2)*2 then s2:='0' +s2 else s2:='1'+s2; m:=m div 2; end; edit2...
增城市13291219602: 在Delphi界面下完成字母向二进制的转化 - ?
倪质先希: 你是要代码吗,还是别的.字母转化成相应的ASCII码只要通过强制类型转化就能得到了.二进制也是一样.不一定非要通过某种算法来实现的.比如:int c; char d="a"; c=(int)d; 这就是强制类型转化的模式.因为没用过Delphi,所以不知道是什么样的语言,故而用了假代码.希望你能明白意思就行了.
增城市13291219602: 如何在Delphi中将从串口读取的String转化为二进制数 - ?
倪质先希: 用 strToInt(numStr)就可以了, 如果数字很大的话,用 strToInt64(numStr)
增城市13291219602: delphi 在delphi中把二进制转换成十进制 ,如何转换,有函数吗 ?(n?
倪质先希: unit Unit1;interfaceuses Windows, Messages,menus, SysUtils, Math,Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; pmPrinters: TMainMenu; Edit1: TEdit; procedure Button1Click(Sender: ...
增城市13291219602: 哪位朋友有delphi实现数值进制转换的程序代码 - ?
倪质先希: function TrasNum(num:Cardinal):Cardinal;begin result := (num and $000000FF) shl 24 + (num and $0000FF00) shl 8 + (num and $00FF0000 ) shr 8 + (nu...
增城市13291219602: delphi 怎样将一个十进制数转换为二进制数,并将二进制数中的每一位单独取出来?
倪质先希: function IntToBin2(Int: Integer): string;var TmpI, TmpJ: Integer; TmpReal: Real;begin {得到该整数的二进制表示长度} TmpI 1; while True do begin if Int >= Power(2, TmpI) then TmpI TmpI + 1 else break; end; {分别位与,得到二进制表示的每位} ...
增城市13291219602: 数制转换(change.pas/change.in/change.out) delphi或pascal语言?
倪质先希: 其实出题人挺没水平的.8位二进制数,最大255,还“给定一个不多于10个数位的十六进制数”,废话中的废话. program change; var s, strHB: string[8]; i, j: Byte; k: Integer; begin Readln(s); i := 0; for j := 1 to Length(s) do begin if j > 1 then i := ...