1. java16进制浮点数表示法
2. c语言中p-记数法是什么
C99 里16进制浮点数记数法。类似E,但不同。数以0x开头(数字0字母x),然后是16进制浮点数部分,接着是p,后面是以 2为底的阶码。
例如:0xb.1ep5 其中:
b.1e 是16进制浮点数, 乘后面的p5。p5 等于 2的5次方(10进制512)。
所以化成十进制:(11+1/16.0+14/256.0) * 512.0。
(2)16进制浮点数算法扩展阅读:
循环结构:
循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do while循环和for循环。
四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误。
特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。
三个循环的异同点:用while和do…while循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在语句1中进行的。
while循环和for循环都是先判断表达式,后执行循环体,而do…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次,而while循环和for就可能一次都不执行。
3. 十六进制转浮点数
VB有专门的API函数CopyMemory能处理2-10进制浮点数转换和10-2进制浮点数转换。
下列代码演示了10进制Single(单精度浮点型转为16进制字符显示的浮点数和其相反运算:
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Sub BinToSin_Click()
Dim sinStr As String
Dim sinSj As Single
Dim Buffer(3) As Byte
Dim i As Integer
sinStr = Text2
For i = 1 To Len(Text2) Step 2
Buffer((7 - i) / 2) = Val("&H" & Mid(sinStr, i, 2))
Next
CopyMemory ByVal VarPtr(sinSj), ByVal VarPtr(Buffer(0)), 4
Text3 = sinSj
End Sub
Private Sub SinToBin_Click()
Dim i As Integer
Dim hexData As String
Dim a As Single
Dim Buffer(3) As Byte
a = Val(Text1)
CopyMemory Buffer(0), a, 4
For i = 0 To 3
If Len(Hex(Buffer(i))) = 1 Then
hexData = "0" & Hex(Buffer(i)) + hexData
Else
hexData = Hex(Buffer(i)) + hexData
End If
Next
Text2 = hexData
End Sub
4. C语言十六进制浮点数科学计数法
你的数应该这样写的 0xa.1f 10p
a是10
.1f表示1/16加上15/256
p10表示2的10次方(即1024)
即 0xa.1f 10p =10+ 1*(16的-1次方)+ 15*(16的-2次方) ×(2的10次方)
类似于十进制数1.23=1+2*10的-1次方+3*10的-2次方
5. 怎么将4字节16进制转化成浮点数
四个字节的十六机制数组转浮点数:
byte[bytes=newbyte[4];
BitConverter.ToSingle(bytes,0)。
四字节16进制数可转换为四个二进制字节(Bytes),从而使用Api函数来处理成单精度浮点数。以下用VB代码处理。
VB有专门的API函数CopyMemory能处理2-10进制浮点数转换和10-2进制浮点数转换。
(5)16进制浮点数算法扩展阅读
例:
charp[4]={0x1e,0x0d,0xa8,0x3c};转换成浮点数:0.0205140,还有如何判断,这四个十六进制转换成浮点数是正数还是负数。
#include<stdio.h>
intmain(void)
{floata=0.0f;unsignedchar*b
=(unsignedchar*)&a;
charc[4]={0x1e,0x0d,0xa8,0x3c};
inti=0;//printf("b1:%d ",b);
for(i=0;i<4;i++){ b[i]
=(unsignedchar)c[i]; }
//printf("b2:%d ",*b);
printf("结果为: ");printf("%f ",a);
//printf("a:%d ",a)6. 16进制浮点数如何转化为10进制啊
最简单的方法,先将16进制数写成2进制数,再转化为10进制数。由于16是2的4次方,所以每个16进制数上的每一位,可以写成4位的2进制数
比如:
1abc=0001
1010
1011
1100
再转换为10进制
7. 浮点数怎么计算要详细过程··
一个浮点数a由两个数m和e来表示:a = m × b^e。
在任意一个这样的系统中,我们选择一个基数b(记数系统的基)和精度p(即使用多少位来存储)。m(即尾数)是形如±d.ddd...ddd的p位数(每一位是一个介于0到b-1之间的整数,包括0和b-1)。如果m的第一位是非0整数,m称作规格化的。
有一些描述使用一个单独的符号位(s 代表+或者-)来表示正负,这样m必须是正的。e是指数。
例如,一个指数范围为±4的4位十进制浮点数可以用来表示43210,4.321或0.0004321,但是没有足够的精度来表示432.123和43212.3(必须近似为432.1和43210)。当然,实际使用的位数通常远大于4。
(7)16进制浮点数算法扩展阅读:
浮点数并不一定等于小数,定点数也并不一定就是整数。
C++中的浮点数有6种,分别是:
float:单精度,32位
unsigned float:单精度无符号,32位
double:双精度,64位
long double:高双精度,80位
纯小数要想用二进制表示,必须先进行规格化,即化为 1.xxxxx * ( 2 ^ n ) 的形式(“^”代表乘方,2 ^ n表示2的n次方)。对于一个纯小数D,求n的公式如下:
n = 1 + log2(D); // 纯小数求得的n必为负数
再用 D / ( 2 ^ n ) 就可以得到规格化后的小数了。接下来就是十进制到二进制的转化问题,为了更好的理解,先来看一下10进制的纯小数是怎么表示的,假设有纯小数D,它小数点后的每一位数字按顺序形成一个数列:
{k1,k2,k3,...,kn}
那么D又可以这样表示:
D = k1 / (10 ^ 1 ) + k2 / (10 ^ 2 ) + k3 / (10 ^ 3 ) + ... + kn / (10 ^ n )
推广到二进制中,纯小数的表示法即为:
D = b1 / (2 ^ 1 ) + b2 / (2 ^ 2 ) + b3 / (2 ^ 3 ) + ... + bn / (2 ^ n )
8. 16进制的浮点数a.c等于10进制的多少
A.C (h)
=10x16^0 + 12x16^(-1)
=10.75 (d)
9. 急求十六进制转浮点数C程序!!!
#include
<stdio.h>
#include
<stdint.h>
void
test_disassemble_float(){
float
a
=
1.0,
b
=
2.3;
uint8_t
*pa
=
(uint8_t
*)&a,
*pb
=
(uint8_t
*)&b;
printf("%f:
%02x,
%02x,
%02x,
%02x\n",
a,
pa[0],
pa[1],
pa[2],
pa[3]);
//
output:
0x00,
0x00,
0x80,
0x3f
printf("%f:
%02x,
%02x,
%02x,
%02x\n",
b,
pb[0],
pb[1],
pb[2],
pb[3]);
//
output:
0x33,
0x33,
0x13,
0x40
}
void
test_assemble_float(){
uint8_t
pa[4]
=
{0x00,
0x00,
0x80,
0x3f};
uint8_t
pb[4]
=
{0x33,
0x33,
0x13,
0x40};
printf("%f\n",
*((float
*)pa));
printf("%f\n",
*((float
*)pb));
}
int
main(){
test_disassemble_float();
test_assemble_float();
//
这两个函数,第一个把float拆成了4个uchar,第二个用4个uchar组成了一个float;
//
剩下的就不难了吧,读4个uchar,放到数组里,强制转换;
//
按照你的意思,每个uchar都读2个十六进制数字就行了;
return
0;
}
10. 16进制浮点数如何转化为10进制
1、打开Microsoft Visual Studio 2010, 新建名字为【进制转换示例】的程序。