十六进制转换二进制的JAVA代码怎么写
String str="12C2";int i=Integer.parseInt(str,16)
;String str2=Integer.toBinaryString(i);str是16进制数的字符串str2就是2进制数的字符串
c语言、浮点数怎么变成16进制
首先 浮点数2.5写成二进制应该为10.1(其中整数部分10b=2d, 小数部分0.1*2=1所以0.1b为0.5d)。
然后要把10.1规格化(写成1.xxxx * 2^n的形式,有点像科学计数法)得到1.01*2^1(其中2^1中的1为阶码, 1.01为有效数字)
加上2.5为正数,这就得到三部分信息:
1. 有效数字为1.01.
2. 阶码为1.
3. 符点数为正数
而c/c++的float类型结构为:
1. 最低的23位记录规格化小数中的有效数字(但是不保存最前面的1)
2. 之后的8位记录阶码(上面的阶码转换到这里要+127)
3. 最高的一位表示正负数(0为正数,1为负数)
最终得到的二进制数为:
高位 低位
0 10000000 01000000000000000000000
整理得:
0100 0000 0010 0000 0000 0000 0000 0000
转到16进制得:
40200000
注意:0 无穷大 在符点数里比较特殊另外处理(我也不太明白-_-!)
16进制前后顺序
16进制数字存在前后顺序的问题。它包括以下两种方式,分别是:
大端序(Big Endian):高位字节存储在内存的低地址。
小端序(Little Endian):低位字节存储在内存的低地址。
以一个16进制字符串"0xABCD"为例:
- 大端序,它的内存顺序为:A。B。C。D
- 小端序,它的内存顺序为:D。C。B。A
也就是说:
大端序按高位字节到低位字节的顺序存储,低地址存储高位字节。
小端序按低位字节到高位字节的顺序存储,低地址存储低位字节。
这对于处理多字节的数据非常重要,比如两个16位字的序列0xABCD 和 0x1234。
大端序的内存顺序为:A。B。1。2
小端序的内存顺序为:2。1。B。A
所以,16进制前后顺序的问题主要影响到多字节数据的存储方式。
不同的CPU、操作系统甚至编程语言有可能采用不同的顺序。
比如:
x86 CPU采用小端序。
ARM CPU可以选择大端序或小端序。
Java 和 C 编程语言遵循本地端序。
希望以上内容能为您解答16进制前后顺序的问题。如果仍有疑问,欢迎继续提问。
139转换成十六进制怎么算啊
回答如下:要将十进制数139转换为十六进制数,可以使用以下步骤:
1. 将139除以16,得到商和余数。
139 ÷ 16 = 8 余 11
2. 将商再次除以16,得到新的商和余数。
8 ÷ 16 = 0 余 8
3. 将所有的余数按照逆序排列,得到十六进制表示。
11 8
所以,十进制数139转换为十六进制数为"8B"。
还没有评论,来说两句吧...