c语言占八个字节的浮点数是,『double转八字节十六进制』double占8字节 一个数字占1字节 为什么能精确16位 我觉得只有8位,,,...

C# 的double类型的10进制 转化成 字符串的 2进制和16进制的问题

先转换成字组,然后再转成2进制和16进制格字符串XSf道家风水传承网double x = 3.14d;XSf道家风水传承网

XSf道家风水传承网

// 先转换为字节数组XSf道家风水传承网

byte[] bArray = BitConverter.GetBytes(x);XSf道家风水传承网

XSf道家风水传承网

// 再转换为制和十六进制字符串XSf道家风水传承网

string sBin = string.Empty;XSf道家风水传承网

string sHex = string.Empty;XSf道家风水传承网

foreach(byte b in bArray)XSf道家风水传承网

{XSf道家风水传承网

sBin  = Convert.ToString(b, 2);XSf道家风水传承网

sHex  = Convert.ToString(b, 16);XSf道家风水传承网

}

计算机二进制,十进制,八进制,十六进制怎么转换

1.什么进制XSf道家风水传承网

二进制是计算技术中广泛采用的数制。二进制数据是用0和1两个数的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。       XSf道家风水传承网

.信息的存储单位XSf道家风水传承网

位(Bit) :度量数据的最小单位XSf道家风水传承网

字节(Byte):最常用的基本单位,一个字节有8位XSf道家风水传承网

b7  b6 b5 b4 b3 b2 b1 b0XSf道家风水传承网

1    0   0  1   0   1   0   1  =27 24 22 20=149XSf道家风水传承网

K字节       1k=1024 byteXSf道家风水传承网

M(兆)字节  1M=1024KXSf道家风水传承网

G(吉)字节  1G=1024MXSf道家风水传承网

T(太)字节  1T=1024GXSf道家风水传承网

2.十进制转换XSf道家风水传承网

1234[10进制] 0 1 2 3 4 5 6 7 8 9 0 当数位上的值超过9就要进1XSf道家风水传承网

1000 200 30 4=1*103 2*102 3*101 4*100=1234XSf道家风水传承网

1011[2进制] 0 1 当数位上的值超过1就要进1XSf道家风水传承网

1*23 0*22 1*21 1*20=8 0 2 1=11XSf道家风水传承网

1011[8进制]0 1 2 3 4 5 6 7 当数位上的值超过7就要进1XSf道家风水传承网

1*83 1*81 1*80=512 8 1=521XSf道家风水传承网

1011[16进制]0 1 2 3 4 5 6 7 8 9 A B C D E F 当数位上的值超过15就要进1XSf道家风水传承网

1*163 1*161 1*160=4096 16 1=4113XSf道家风水传承网

3.二进制转换XSf道家风水传承网

首先来看十进制到二进制:除2取余数 最后把余数倒过来 100101XSf道家风水传承网

比如:十进制数37XSf道家风水传承网

所以转换成的二进制数字为:100101XSf道家风水传承网

再来八进制到二进制:一个八进制的位拆分成一个三位的二进制数XSf道家风水传承网

比如:[八进制]616XSf道家风水传承网

6拆分成 110XSf道家风水传承网

1拆分成 001XSf道家风水传承网

6拆分成 110XSf道家风水传承网

所以转换成的二进制数字为:110001110XSf道家风水传承网

再来十六进制到二进制:一个八进制的位拆分成一个四位的二进制数XSf道家风水传承网

比如:[十六进制]616XSf道家风水传承网

6拆分成 0110XSf道家风水传承网

1拆分成 0001XSf道家风水传承网

6拆分成 0110XSf道家风水传承网

所以转换成的二进制数字为:11000010110XSf道家风水传承网

4.八进制转换XSf道家风水传承网

十进制到八进制:除8取余数 最后把余数倒过来XSf道家风水传承网

同时我们也可以先将十进制转换成二进制,然后将二进制又转换成八进制 XSf道家风水传承网

比如:2456 转化成八进制数字:4630XSf道家风水传承网

2456/8=307,余0;XSf道家风水传承网

307/8=38,余3;XSf道家风水传承网

38/8=4,余6;XSf道家风水传承网

4/8=0,余4。XSf道家风水传承网

将所有余数倒序相连,得到结果:4630。XSf道家风水传承网

因此十进制的2456转换为八进制结果为4630。XSf道家风水传承网

二进制到八进制转换  7=4 2 1 111 八进制最大的数字是7转换成二进制刚好是111,占3个位XSf道家风水传承网

每三个二进制数为一组,转成一个八进制数位,如果二进制高位不足3位时,用零填补。XSf道家风水传承网

比如:10011011XSf道家风水传承网

010 011 011XSf道家风水传承网

2     3     3XSf道家风水传承网

因此二进制的10011011转换为八进制结果为233。XSf道家风水传承网

5. 十六进制到八进制XSf道家风水传承网

我们可以先把十六进制的数字转换成二进制,在从二进制转换成八进制例如: XSf道家风水传承网

3BC24 XSf道家风水传承网

分别对应到二进制就是: XSf道家风水传承网

3 0011 XSf道家风水传承网

B 1011 XSf道家风水传承网

C 1100 XSf道家风水传承网

4 0100XSf道家风水传承网

连起来就是: XSf道家风水传承网

0011 1011 1100 0100XSf道家风水传承网

再按照每三个一组分组: XSf道家风水传承网

0 011 101 111 000 100XSf道家风水传承网

0__3__5__7__0__4 XSf道家风水传承网

所以8进制就是35704XSf道家风水传承网

6.十六进制转换XSf道家风水传承网

十进制到十六进制:除16倒着取余数XSf道家风水传承网

同时我们也可以先将十进制转换成二进制,然后将二进制又转换成十六进制 XSf道家风水传承网

比如说:1610转换成十六进制XSf道家风水传承网

直接转16进制:XSf道家风水传承网

1610/16=100……10(A);XSf道家风水传承网

100 /16= 6……4;XSf道家风水传承网

6 /16= 0……6;XSf道家风水传承网

故:1610(10)=64A(16).XSf道家风水传承网

二进制到十六进制 15=8 4 2 1   1111 十六进制最大数字是F,即15转换成二进制1111,刚好占4个位XSf道家风水传承网

每四个二进制数为一组,转成一个十六进制数位,如果二进制高位不足3位时,用零填补。XSf道家风水传承网

比如:1110011011XSf道家风水传承网

0011 1001 1011XSf道家风水传承网

3       9      BXSf道家风水传承网

因此二进制的 1110011011转换为十六进制39BXSf道家风水传承网

八进制到十六进制XSf道家风水传承网

我们可以先把八进制的数字转换成二进制,在从二进制转换成十六进制XSf道家风水传承网

八进制的:1234567XSf道家风水传承网

转换为二进制是每个数字转换为三位二进制:001 010 011 100 101 110 111XSf道家风水传承网

然后把这些数字从右边开始进行按四位分组:0 0101 0011 1001 0111 0111XSf道家风水传承网

然后从右边每四位组依次对应一个16进制数:053977XSf道家风水传承网

7.各种进制的用途XSf道家风水传承网

说了这么多,这些进制都有些什么用了,大家一起讨论下吧!!!XSf道家风水传承网

10进制,当然是便于我们人类来使用,我们从小的习惯就是使用十进制,这个毋庸置疑。XSf道家风水传承网

2进制,是供计算机使用的,1,0代表开和关,有和无,机器只认识2进制。XSf道家风水传承网

16进制,内存地址空间是用16进制的数据表示, 如0x8049324。XSf道家风水传承网

编程中,我们常用的还是10进制。   XSf道家风水传承网

比如:int a = 100,b = 99;   XSf道家风水传承网

不过,由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决 问题。但二进制数太长了。比如int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是:   XSf道家风水传承网

0000 0000 0000 0000 0110 0100   XSf道家风水传承网

面对这么长的数进行思考或操作,没有人会喜欢。因此,用16进制或8进制可以解决这个问题。因为,进制越大,数的表达长度也就越短。XSf道家风水传承网

1.用于计算机领域的一种重要的数制   XSf道家风水传承网

2.对计算机理论的描述,计算机硬件电路的设计都是很有益的。比如逻辑电路设计中,既要考虑功能的完备,还要考虑用尽可能少的硬件,十六进制就能起到一些理论分析的作用。比如四位二进制电路,最多就是十六种状态,也就是一种十六进制形式,只有这十六种状态都被用上了或者尽可能多的被用上,硬件资源才发挥了尽可能大的作用。   XSf道家风水传承网

3.十六进制更简短,因为换算的时候一位16进制数可以顶4位2进制数。XSf道家风水传承网

8进制,一般有什么用,查了下资料,还真不知道?有知道的大神告诉我吧。XSf道家风水传承网

如果你用过linux你可能见过这样表示一个文件的权限:0777、0666等等XSf道家风水传承网

可能有的这样解释:具有读权限加1,具有写权限加2,具有执行权限加4,最后的和就是一个角色所具有的权限。而linux有三种角色:属主、属组、其他用户,所以用0777、0666之类的表示。XSf道家风水传承网

如果用二进制来看的话,linux用3个bit来表示权限,如果具有某个权限就把那位置1.比如只具有读权限就是100,只具有写权限就是010,具有读写权限就是110,具有读写执行权限就是111。XSf道家风水传承网

如何将16进制转换为Double型

C里面有语法做类型转换啊XSf道家风水传承网

类型名(值) 就能把 值转换成 所需要的 类型XSf道家风水传承网

double(0x00000000000000005940) 就转成double了

如何将double型数值转换为16进制的形式

public String SetNewGuid() {XSf道家风水传承网

String guid = "";XSf道家风水传承网

for (int i = 1; i <= 32; i ) {XSf道家风水传承网

int n =(int)Math.floor(Math.random() * 16.0);XSf道家风水传承网

String uid=Integer.toHexString(n) ;XSf道家风水传承网

System.out.println(uid);XSf道家风水传承网

guid = uid;XSf道家风水传承网

if ((i == 8) || (i == 12) || (i == 16) || (i == 20))XSf道家风水传承网

guid = "-";XSf道家风水传承网

}XSf道家风水传承网

return guid;XSf道家风水传承网

}

double占8字节 一个数字占1字节 为什么能精确16位 我觉得只有8位,,,

这是数据存储方问题XSf道家风水传承网

XSf道家风水传承网

一个float型实数在内存中占4个字,即32个二进制bit,从低位到高位叫第0位到第31位.这32位可以分为3个部分:符号位(第31位),阶码(第30位到第23位共8位),尾数(最低23位)。 XSf道家风水传承网

1、符号位。最高位也就是第31位表示这个实数是正数还是负数,为0表示正数或0,为1表示负数. XSf道家风水传承网

2、阶码。第30位到第23位这8个二进制位表示该实数转化为规格化的二进制实数后的指数与127(127即所谓偏移量)之和即所谓阶码. XSf道家风水传承网

规格化的二进制实数的指数只能在-127---- 127之间,所以,一个float型数的最大值在 2^127即 3.4*10^38,最小值在-2^127即-3.4*10^38. XSf道家风水传承网

3、尾数。其他最低的23位即第22位到第0位表示该实数转化为规格化的二进制实数后小数点以后的其余各位即所谓尾数. XSf道家风水传承网

XSf道家风水传承网

Double的计算与此类似,double的符号位为63位,指数为62~52位,共11位。表示的范围为-1024~1023。尾数为51~0。表示的范围为-1.7*10^308~ 1.7*10^308XSf道家风水传承网

XSf道家风水传承网

根据他们的存储原理可知,虽然double存储范围很大,但精确度却并不高XSf道家风水传承网

XSf道家风水传承网

因为他是用科学计数法来表示的,类似1.2 * 10 ^ -38 ----- 3.5 * 10 ^38,XSf道家风水传承网

而精确度表示的是能精确表示的位数,一般指有效数字,如:1.2 * 10 ^ -38 XSf道家风水传承网

虽然数很大,但精确度只有两位有效数字XSf道家风水传承网

XSf道家风水传承网

所以,两个double数尽量不要做“==”逻辑判断,可能会产生BUG

C语言中,单精度浮点数十进制时是22.84,转化为16进制是多少,怎么转化的

整数部分16除,反向取;小数部分用16乘,取整数。具体如下XSf道家风水传承网

22÷16 = 1 余 6XSf道家风水传承网

1÷16 = 0 余 1XSf道家风水传承网

所以整数部分是16。小数部分XSf道家风水传承网

0.84x16 = 13(D) . 44XSf道家风水传承网

0.44x16 = 7 .04XSf道家风水传承网

0.04x16 = 0 .64XSf道家风水传承网

0.64x16 = 10(A) .24XSf道家风水传承网

0.24x16 = 3 .84XSf道家风水传承网

0.84x16 = 13(D) . 44XSf道家风水传承网

...以后循环了,所以XSf道家风水传承网

22.84(10) = 16.D70A3D70A3...(16)XSf道家风水传承网

还可以先“用2除反向取余数”和“用2乘正向取整数”变成二进制,再从小数点开始左右每4位分开,前后不足4位的用0补齐,然后用对应的16进制符号直接写出来就可以了。22.84化成二进制是10110.11010111000010100011...→1'0110.1101'0111'0000'1010'0011→0001'0110.1101'0111'0000'1010'0011→16.D70A3...XSf道家风水传承网

要写代码,如下便可:XSf道家风水传承网

123456789101112#include "stdio.h"int main(void){ double x=22.84,t; char h[17]="0123456789ABCDEF", i,k; printf("%g(10) = %x.",x,int(x)); for(t=x-int(x),i=0;i<10;i ){ k=int(t*=16),t-=k; printf("%c",h[k]); } printf("...(16)\n"); return 0;}XSf道家风水传承网

C/C 没有提供以指针形式输出16进制数据的功能。

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值