0x是16进制的数字前面的0x代表的是16進制,后面的是16进制转换为2进制后每一位的数都变成4位的由0,1组成的数字像8转换为2进制后为1000。
转化为int时,只取前四个字节,舍去多余的头,僦是:
什么意思转化为int类型不是-吗?
亲涉及到知识点如下
第一点:int i=0x,转换为二进制(32位)
int n=254;转换为二进制
第二点:n&i,就是传说中的“与运算”游戏规则,上下对比有一个0就是0两个都是1才是1
第三点:i>>>=1,这是传说中的“逻辑右移位运算”首先看有没有符号
若不带符号:舍弃②进制最后一位,在二进制的开头增加一位0.
进行一次i>>>=1操作结果
第四点:str+=(n&i)==0?'0':'1'这里用的是操作符的优先级
常用操作符的优先级如下:由高到低
一え》数学运算》比较运算》逻辑运算》三元运算》赋值运算
str+就是对等号右边最终结果的不断累加一个字符串+一个字符=一个字符串
具体流程: str+=(n&i)==0?'0':'1';
n&i对应的值就是0,是二进制的的0也是十进制整数int 0
(n&i)==0,运算结果为ture,执行第一个表达式:'0'
str+=(n&i)==0?'0':'1';此时str可以宣布他已经不是当初的String str="";洏是String str="0";
加下来进行i>>>=1
通过这个最前面的1向后依次移动,可以将 前面的0都进行输出.32位填充
亲,回答的还满意吗
这。。你的太详细了滿意答案已经选完了,但是谢谢你。加个好友吧,以后Java的问题我们可以互相讨论。QQ: