java 字节 & 0xFF 什么意思, <=0xF又是什么意思

问题一:上边是一段将字节转化成16进制字符串的代码,将密码通过MD5转化字节,字节转化成16进制字符串,为什么得到自己还不够,要转化成16进制字符串。16进制字符串用什么... 问题一:上边是一段将字节转化成16进制字符串的代码,将密码通过MD5转化字节,字节转化成16进制字符串,为什么得到自己还不够,要转化成16进制字符串。16进制字符串用什么特别的作用?

问题二:我在网上搜到的位运算符为什么都是0和1的例子,得到的也是1和0的结果?我自己2010 & 1010得到的结果会是978

问题三:0x我知道是16进制的意思,那0xFF,0xF,0xFFFFFFFF是什么意思
展开
 我来答
zhongtyler
2015-01-07 · TA获得超过4408个赞
知道大有可为答主
回答量:4384
采纳率:79%
帮助的人:928万
展开全部
问题1:16进制字符串的作用主要是便于查看,每个字节必然是两位字符。 如果不转换的话,字付中很多都是不可见字符,可能导致显示错乱,甚至被系统错误的解码。
问题2: 网上的写法是2进制的。 这样可以一眼看出对应的位的变化。而你的2010是10进制的。你需要手工转成2进制才能很好的确认值。
问题3:0xff换成2进制就是8个1,这样与的话,其实就是取到了字符的低8位。 oxf就是15, 小于15的数会转换成一个16进制数,你的代码里希望是固定的两个16进制数,所以当只会产生一个时要加个0
更多追问追答
追问
问题一:为什么string.getByte()得到的是[100, 115, 97, 100, 97, 115, 102, 115],不是说byte是8位的二进制数据吗,数组中怎么不是二进制数据呢?
问题二:数组中的字节 & 0xFF是怎样进行计算的,我在网上看了很多资料都没看懂,
可以简单明了的讲一下吗?
追答
问题一:
byte存的是一个8字节的二进制数,但是数据库里没法存(比较麻烦),文件里也不太好放,和别人通讯时,byte数组也很麻烦。所以一般是转成字符保存。
例如 [100, 115, 97] 如果存成字符, “10011597” 这么就会有一个分割的问题,究竟是三位一分割还是两位一分割。 由于byte的取值范围 0-254 ,所以需要保存三位,这样就是"100115097",如果用16进制就是"647361",这样就比较短了。所以外面比较喜欢把byte存成16进制字符。

问题二:
& 表示按位与,与操作是个逻辑运算, 就是都为1时返回1,有一个是0就返回0
例如100 & 0xff 那么需要前后都转成2进制 100==> 01100100 0xff==>11111111,每一位做一下与运算,这样就发现,返回的结果就是100的低8位, 01100100.
198901245631
2015-07-02 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1738万
展开全部
  • 0xFF表示的是16进制(十进制是255),表示为二进制就是”11111111“。那么&符表示的是按位数进行与(同为1的时候返回1,否则返回0)。举例:

10101010&0xFF;结果就是:10101010.

  • <=0xF表示的就是运算,就是与十进制的15进行比较(十六进制F表示为十进制是15)。举例:

 if(16<=0xF){

             System.out.println("true");

         }

结果就是没有输出(不满足条件),当16换成15的话,结果就是”true“。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式