到hexstring
从字面上说,我想把它转换成十六进制。
十六进制的基本单位是四个二进制。如果这四个二进制是最大的,那么它们是1111,即=15
如果这个数的最后四位和15位用于位和运算,则得到一个结果,这个数是十六进制的一位
!例如,18
18二进制表示为:
0001如果要将此二进制转换为十六进制,并对15执行位和运算,请首先取以下四位进行运算:
0010
&1111
-
0010result=2
然后向右移动4位,取0001和15表示&;行动
!0001
&1111
-]-
0001result=1
因此18的十六进制表达式为:0x12
注意:0x是固定格式
!正常情况下,相同的15用于操作。如果你写两个ff,我猜你可以计算一个char或short类型的数据
!原理是一样的
二进制到八进制需要记住对应关系:二进制000对应八进制0
二进制到八进制0
二进制到八进制0
0000
0011
0102
0113
1004
1015
1106
1117]]二进制到八进制的转换方法是取三位一体的方法,即从二进制的小数点为分界点,左(或右)每三位取一位,如下图所示:
010100.011101二进制数,将每三位数字按如下方式分组
010100.011101
分组后,根据二进制和八进制的对应关系,写出三位二进制,即得到八进制数,小数点的位置不变。
010对应2;100对应4;011对应3;101对应5。
二进制数:010100.011101转换为八进制是24.35。
二进制到十六进制是一组四位数
]位数不够(左或右)
字节数组到十六进制字符串:公共类commonutil{/***字节数组到十六进制字符串*@paramsrc*@return*/publicstaticstringbytestohexstring(byte[]src){stringbuilderstringbuilder=newstringbuilder(),如果(src==null||src.长度<=0){returnnull}(inti=0i<src.长度i){intv=src[i]&;0xffstringhv=integer.tohexstring(v)如果(高压长度()<2){stringbuilder.append文件(0)}stringbuilder.append文件(hv)}返回字符串生成器.tostring()}}字节数组到十六进制字符数组字符串[]公共类commonutil{/***将字节数组转换为十六进制字符数组*@paramsrc*@return*/publicstaticstring[]bytestohexstrings(byte[]src){if(src==null||src.长度<=0){returnnull}string[]str=newstring[src.长度]对于(inti=0i<src.长度i){intv=src[i]&;0xffstringhv=integer.tohexstring(v)如果(高压长度()<2){str[i]=“0”}str[i]=hv}返回str}}