Java½â»ó2 27±ä»ÃβâµÄIÖµ
ÓëÃÕÌâ26ÖеijÌÐòÒ»Ñù£¬ÏÂÃæµÄ³ÌÐòÒ²°üº¬ÁËÒ»¸ö¼Ç¼ÔÚÖÕֹǰÓжàÉٴεü´úµÄÑ»·¡£ÓëÄǸö³ÌÐò²»Í¬µÄÊÇ£¬Õâ¸ö³ÌÐòʹÓõÄÊÇ×óÒÆ²Ù×÷·û£¨<<£©¡£ÄãµÄÈÎÎñÕÕ¾ÉÊÇÒªÖ¸³öÕâ¸ö³ÌÐò½«´òӡʲô¡£µ±ÄãÔĶÁÕâ¸ö³ÌÐòʱ£¬Çë¼Çס Java ʹÓõÄÊÇ»ùÓÚ2µÄ²¹ÂëµÄ¶þ½øÖÆËãÊõÔËË㣬Òò´Ë-1ÔÚÈκÎÓзûºÅµÄÕûÊýÀàÐÍÖУ¨byte¡¢short¡¢int»òlong£©µÄ±íʾ¶¼ÊÇËùÓеÄλ±»ÖÃλ£º
public class Shifty {
public static void main(String[] args) {
int i = 0;
while (-1 << i != 0)
i++;
System.out.println(i);
}
}
³£Á¿-1ÊÇËùÓÐ32λ¶¼±»ÖÃλµÄintÊýÖµ£¨0xffffffff£©¡£×óÒÆ²Ù×÷·û½«0ÒÆÈëµ½ÓÉÒÆÎ»Ëù¿Õ³öµÄÓұߵÄ×îµÍ룬Òò´Ë±í´ïʽ£¨-1 << i£©½«i×îÓұߵÄλÉèÖÃΪ0£¬²¢±£³ÖÆäÓàµÄ32 - iλΪ1¡£ºÜÃ÷ÏÔ£¬Õâ¸öÑ»·½«Íê³É32´Îµü´ú£¬ÒòΪ-1 << i¶ÔÈκÎСÓÚ32µÄiÀ´Ëµ¶¼²»µÈÓÚ0¡£Äã¿ÉÄÜÆÚÍûÖÕÖ¹Ìõ¼þ²âÊÔÔÚiµÈÓÚ32ʱ·µ»Øfalse£¬´Ó¶øÊ¹³ÌÐò´òÓ¡32£¬µ«ÊÇËü´òÓ¡µÄ²¢²»ÊÇ32¡£Êµ¼ÊÉÏ£¬Ëü²»»á´òÓ¡Èκζ«Î÷£¬¶øÊǽøÈëÁËÒ»¸öÎÞÏÞÑ»·¡£
ÎÊÌâÔÚÓÚ£¨-1 << 32£©µÈÓÚ-1¶ø²»ÊÇ0£¬ÒòÎªÒÆÎ»²Ù×÷·û֮ʹÓÃÆäÓÒ²Ù×÷ÊýµÄµÍ5λ×÷ÎªÒÆÎ»³¤¶È¡£»òÕßÊǵÍ6룬Èç¹ûÆä×ó²Ù×÷ÊýÊÇÒ»¸ölongÀàÊýÖµ[JLS 15.19]¡£
ÕâÌõ¹æÔò×÷ÓÃÓÚÈ«²¿µÄÈý¸öÒÆÎ»²Ù×÷·û£º<<¡¢>>ºÍ>>>¡£ÒÆÎ»³¤¶È×ÜÊǽéÓÚ0µ½31Ö®¼ä£¬Èç¹û×ó²Ù×÷ÊýÊÇlongÀàÐ͵ģ¬Ôò½éÓÚ0µ½63Ö®¼ä¡£Õâ¸ö³¤¶ÈÊǶÔ32È¡ÓàµÄ£¬Èç¹û×ó²Ù×÷ÊýÊÇlongÀàÐ͵ģ¬Ôò¶Ô64È¡Óà¡£Èç¹ûÊÔͼ¶ÔÒ»¸öintÊýÖµÒÆÎ»32룬»òÕßÊǶÔÒ»¸ölongÊýÖµÒÆÎ»64룬¶¼Ö»ÄÜ·µ»ØÕâ¸öÊýÖµ×ÔÉíµÄÖµ¡£Ã»ÓÐÈκÎÒÆÎ»³¤¶È¿ÉÒÔÈÃÒ»¸öintÊýÖµ¶ªÆúÆäËùÓеÄ32룬»òÕßÊÇÈÃÒ»¸ölongÊýÖµ¶ªÆúÆäËùÓеÄ64λ¡£
ÐÒÔ˵ÄÊÇ£¬ÓÐÒ»¸ö·Ç³£ÈÝÒ׵ķ½Ê½Äܹ»¶©Õý¸ÃÎÊÌâ¡£ÎÒÃDz»ÊÇÈÃ-1ÖØ¸´µØÒÆÎ»²»Í¬µÄÒÆÎ»³¤¶È£¬¶øÊǽ«Ç°Ò»´ÎÒÆÎ»²Ù×÷µÄ½á¹û±£´æÆðÀ´£¬²¢ÇÒÈÃËüÔÚÿһ´Îµü´úʱ¶¼Ïò×óÔÙÒÆ1λ¡£ÏÂÃæÕâ¸ö°æ±¾µÄ³ÌÐò¾Í¿ÉÒÔ´òÓ¡³öÎÒÃÇËùÆÚÍûµÄ32£º
public class Shifty {
public static void main(String[] args) {
int distance = 0;
for (int val = -1; val != 0; val <<= 1)
distance++;
System.out.println(distance);
}
}
Õâ¸ö¶©Õý¹ýµÄ³ÌÐò˵Ã÷ÁËÒ»ÌõÆÕ±éµÄÔÔò£ºÈç¹û¿ÉÄܵϰ£¬ÒÆÎ»³¤¶ÈÓ¦¸ÃÊdz£Á¿¡£Èç¹ûÒÆÎ»³¤¶È½ô¶¢×ÅÄã²»·Å£¬ÄÇôÄãÈÃÆäÖµ³¬¹ý31£¬»òÕßÈç¹û×ó²Ù×÷Êý
Ïà¹ØÎĵµ£º
Ôڳɹ¦ÊµÏÖJavaµ÷ÓÃC++Ö®ºó£¬½ÓÏÂÀ´Ïëµ½ÄÜ·ñͨ¹ýJNAʵÏÖJavaµ÷ÓÃFortran£¬½ñÌìÊÔÑéÁËһϣ¬»¹ÊDZȽÏÈÝÒ׵ġ£
ÍøÉÏÓÐÒ»¸öJavaµ÷ÓÃF95µÄÀý×Ó£¬µ«ÊÇÎÒ¿¼ÂDz»½öҪʵÏÖF95µÄµ÷Ó㬻¹ÒªÊµÏÖF77µÄµ÷Óã¬ËùÒÔ·ÑÁËһЩÖÜÕÛ¡£
ÎÊÌâµÄ¹Ø¼üÔÚÓÚF77Ϊ¹ý³ÌÃû×Ô¶¯Ìí¼ÓÁËÒ»¸öβ²¿µÄÏ»®Ïߣ¬ËùÒÔsub1Õâ¸ö¹ý³Ì£¬µ½JavaÒ»¶Ë£¬¾Í±ä³ÉÁËsub1_£¬ ......
»ù±¾ÀàÐÍ£¬»òÕß½Ð×öÄÚÖÃÀàÐÍ£¬ÊÇJAVAÖв»Í¬ÓÚÀàµÄÌØÊâÀàÐÍ¡£ËüÃÇÊÇÎÒÃDZà³ÌÖÐʹÓÃ×îÆµ·±µÄÀàÐÍ£¬Òò´ËÃæÊÔÌâÖÐÒ²×ÜÉÙ²»ÁËËüÃǵÄÉíÓ°£¬ÔÚÕâÆªÎÄÕÂÖÐÎÒÃǽ«´ÓÃæÊÔÖг£¿¼µÄ¼¸¸ö·½ÃæÀ´»Ø¹ËÒ»ÏÂÓë»ù±¾ÀàÐÍÏà¹ØµÄ֪ʶ¡£
»ù±¾ÀàÐ͹²ÓаËÖÖ£¬ËüÃÇ·Ö±ð¶¼ÓÐÏà¶ÔÓ¦µÄ°ü×°Àà¡£¹ØÓÚËüÃǵÄÏêϸÐÅÏ¢Çë¿´ÏÂ±í£º
»ù±¾ÀàÐÍ¿ÉÒÔ·ÖΪÈýÀ࣬ ......
ÏÂÃæµÄ³ÌÐòËùÒª×öµÄÊÂÇéÕýÊÇǰһ¸öÃÕÌâËù×öµÄÊÂÇ飬µ«ÊÇËüûÓмÙÉèб¸Ü·ûºÅ¾ÍÊÇ·Ö¸ôÎļþÃû×é³É²¿·ÖµÄ·ûºÅ¡£Ïà·´£¬¸Ã³ÌÐòʹÓõÄÊÇjava.io.File.separator£¬Ëü±»Ö¸¶¨ÎªÒ»¸ö¹«¹²µÄStringÓò£¬°üº¬ÁËÆ½Ì¨Ïà¹ØµÄÎļþÃû·Ö¸ô·û¡£ÄÇô£¬Õâ¸ö³ÌÐò»á´òÓ¡³öÆäÕýÈ·µÄ¡¢Æ½Ì¨Ïà¹ØµÄÀàÎļþÃûÂð£¿
package com.javapuzzlers;
import java. ......
±¾ÃÕÌâÀûÓÃÁËJava±à³ÌÓïÑÔÖÐÒ»¸öºÜÉÙ±»ÈËÁ˽âµÄÌØÐÔ¡£Ç뿼ÂÇÏÂÃæµÄ³ÌÐò½«»á×öЩʲô£¿
public class BrowserTest {
public static void main(String[] args) {
System.out.print("iexplore:");
http://www.google.com;
System.out.println(":maximize");
}
}
ÕâÊÇÒ»¸öÓеã¹îÒìµÄÎ ......