怎么将用十六进制表示的数赋值给一个double变量

如题所述

第1个回答  2016-09-06
2 #include <string.h>
3
4 using namespace std;
5
6 int main() {
7 long int i = 0x4034000000000000;
8 double d;
9 memcpy(&d, &i, 8);
10 cout << d << endl;
11 }

g++ test_double.cpp && ./a.out
输出:20本回答被网友采纳
第2个回答  2017-02-16

Java中十六进制不能直接转化为double 变量,需要先转化为int类型再转化为double类型。

(1)十六进制转化为int类型;

int hexNum = 0xff;

(2)int类型可以直接转化为double类型;

double dNum = hexNum;

代码示例:

public static void main(String[] args) {
Integer hexNum = 0xa;
double dNum = hexNum;
System.out.println(dNum);

}

第3个回答  2016-10-31

    在Java中 有多中进制的表现形式 ,我们通常用的是十进制的数字,十六进制有其独特的表示方式 。

    如: 11  是个十进制的数字, 0xA 就是转为十六进制以后的表现形式  你可以直接采用变量赋值的方式将十六进制的数字转入 double 类型的变量中。


第4个回答  2017-02-08
16进制有几位?
反正不管几位进来只要值对,对应当前系统位数跟编译的语言中double占用多少位内存来计算, 与上占用内存位数相应为全1值就行了。
比如C语言中double占用32位,
HEX&0xFFFFFFFF
JAVA double 64位
HEX&0xFFFFFFFFFFFFFFFF
第5个回答  2016-09-21
var
n,k:longint;
procedure dg(n,a:longint);
var
x:array[1..16] of longint;
i,j,k,h:longint;
begin
if n<0 then
begin
write('-');
end;
j:=abs(n);
k:=0;
repeat
inc(k);
i:=j mod a;
j:=j div a;
x[k]:=i;
until j=0;
for h:=k downto 1 do
begin
if x[h]<10 then write(x[h])
else write(chr(55+x[h]));
end;
end;
begin
readln(n);
readln(k);
dg(n,k);
end.
输入你要读进去的10进制数,他会自动帮你转化为douoble类型的k进制数

怎么将用十六进制表示的数赋值给一个double变量
11 } g++ test_double.cpp && .\/a.out 输出:20

怎么将用十六进制表示的数赋值给一个double变量
reinterpret_cast<uint64_t*>(&d) = 0x1234567800000000ULL 注意: cpp并没有规定浮点数的格式与大小,所以在使用之前确定目标平台与编译器

C语言:十六进制(HEX)和浮点类型(float、double)转换
方法1:通过地址和指针,将浮点数转换为十六进制。输出结果如下:方法2:利用共用体,将浮点数转换为十六进制。输出结果如下:方法3:使用memcpy,将浮点数转换为十六进制。输出结果如下:对于十六进制转换为浮点类型,具体实现步骤如下:输出结果如下:此外,分享了一个便利的十六进制和浮点类型互相转换的...

Java进阶:Java变量类型之间的相互转换
对于所有的包装类都存在一个名为toString()的方法可以将其转换成对应的String类 而对于整型类和长整型类 还可以使用 toBinaryString(int i) toHexString(int i) toOctalString(int i)分别以二进制 十六进制和八进制的形式进行到String类的转换 五 将字符型直接做为数值转换为其它数据类型 将字符型变...

求c++各进制转换的代码(double浮点数)
printf("0、退出\\t1、十进制~二进制\\t2、十进制~八进制\\t3、十进制~十六进制\\n");printf("请选择功能:");scanf("%d",&select);if(select==0){ break;} switch(select){ case 1: binarysys();break;case 2: octalsys();break;case 3: hex();break;default : printf("请输入0~3...

如何用c语言输出地址的内容,如下所示:
按照IEEE浮点数表示法,下面将把double型浮点数38414.4转换为十六进制代码。把整数部和小数部分开处理:整数部直接化十六进制:960E。小数的处理:0.4=0.5*0+0.25*1+0.125*1+0.0625*0+……实际上这永远算不完!这就是著名的浮点数精度问题。所以直到加上前面的整数部分算够53位就行了(隐藏...

c语言中double是什么意思?
double在这里是指将变量i和变量s定义为双精度实型变量。(也就是说:赋给这两个变量的值将以双精度实型格式存储在内存中)注意事项 1、类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。2、无论是强制转换或是自动...

printf中double型数据能用% lf吗?
答:1.C语言中printf输出float和double都可以用%f,而double型数据还可以用%lf。2.scanf当中若是对双精度的变量赋值是必须是%后跟lf,而printf当中可以用%f也可以用%lf没有限制。

C语言中printf输出float和double都用%f么(scanf又如何)
1、printf输出float和double都可以用%f,同时double还可以用%lf。2、scanf输出float用%f,而double输出用%lf,不能混用。

c语言问题???
C语言还有一个重要变量:指针变量.它存放的值是一个内存地址.操作系统变量 C语言中变量名是有大小写之分的,如SUN与sun就是两个不同的变量名。 另一点,声明变量时,可以不用声明就直接赋值来决定变量类型的语言如(javascript,flash cs3.0以前,等),这类语言变量的声明通常被称为弱类型,而如(c++等)必须先声明,后...

相似回答