A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

for(int x=0;x<8;x++)   x<8是什么意思啊? 求助 麻烦朋友了
==================================
public class JinzhiDemo3 {
        /**
         * @param args
         */
        public static void tohex(int number){
                char[] biao={'0','1','2','3',
                                        '4','5','6','7',
                                        '8','9','A','B',
                                        'C','D','E','F'};
                for(int x=0;x<8;x++){          //x<8是什么意思啊?              
                        int temp=number%15;
                        System.out.println(biao[temp]);
                        number=number>>>4;
                }        
        }
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                tohex(60);                        
        }

}

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

14 个回复

倒序浏览
自己先顶下
回复 使用道具 举报
本帖最后由 小小企鹅 于 2012-10-27 22:36 编辑

for(int x=0;x<8;x++)  x<8判断x是否小于8,如果为真执行for语句,为假跳出for语句
tohex()函数将一个10进制整数转为16进制字符型
public static void tohex(int number){
                char[] biao={'0','1','2','3',
                                        '4','5','6','7',
                                        '8','9','A','B',
                                        'C','D','E','F'};
                for(int x=0;x<8;x++){          //x<8是什么意思啊?              
                        int temp=number&15;  //把%该为&就能得到正确的16进制的值
                        System.out.println(biao[temp]);
                        number=number>>>4;
                }        
        }

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
一个字节由8个4位组成,所以循环8次就可以了,而且每次循环移动4位。

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 贾乐飞 于 2012-5-11 17:22 编辑

for(int x=0;x<8;x++){                        
int temp=number%15;
System.out.println(biao[temp]);
number=number>>>4;
                }        
相当于
int x=0;
while(x<8){               
  int temp=number%15;
  System.out.println(biao[temp]);
  number=number>>>4;
   x++;             }  

就是判断的条件,当x++到大于或者等于8的时候,循环结束。
回复 使用道具 举报
for循环中的三个表达式第一个是声明变量并赋值;第二个是判断当前变量满足此处的条件吗是个boolean类型的;第三个表达式是改变自身的表达式为了让循环有一个为假的条件你这里的x<8就是让它有一个不为真的范围

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
int型变量在内存中占4个字节。也就是32个2制位。              
for(int x=0;x<8;x++){          //x<8是什么意思啊?             
                int temp=number%15;
                         System.out.println(biao[temp]);
                         number=number>>>4;
}
该循环体执行一次,number表示的十进制数值对应内存中二进制数值的位数无符号右移4位。移动八次,刚好32位。

评分

参与人数 2技术分 +1 黑马币 +2 收起 理由
攻城狮 + 1 赞一个!
荣天 + 2 赞一个!

查看全部评分

回复 使用道具 举报
补充,看了板凳的答案才知道我理解错楼主的意思,不过应该是4个8位这样说的吧!   因为int类型最高由4个8位组成,也就是总共有32位,而number=number>>>4;
最多也就只能移动8次,所以这里先顶了最多移动8次的判断条件!
回复 使用道具 举报
{:soso_e118:}  我正编辑着分咋就给别人了捏
回复 使用道具 举报
for(int x=0;x<8;x++){          //x<8是循环结束控制语句。              
                        int temp=number%15;
                        System.out.println(biao[temp]);
                        number=number>>>4;
                }        

回复 使用道具 举报
贾乐飞 发表于 2012-5-11 17:23
我正编辑着分咋就给别人了捏

你淡定点行不。。。。。。
回复 使用道具 举报
孙雪娇 发表于 2012-5-11 17:26
你淡定点行不。。。。。。

不淡定不淡定就不淡定,我现在特别不淡定!~
回复 使用道具 举报
for(int x=0;x<8;x++)   x<8是什么意思啊?
答:
1、首先你要先理解什么是for循环? for(<初始化>; <条件表达式>; <增量>)
2、x<8是说整个循环从0开始循环不大于等于8次。
回复 使用道具 举报
循环8次
回复 使用道具 举报
int型是4个字节 譬如int型0在内存中存储是 0000-0000 0000-0000 0000-0000 0000-0000 ;number=number>>>4 即向右移4位故只需遍历8次就够了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马