石頭JAVA擺地攤兒

          JAVA所有的討論-要一點一點的進步

            BlogJava :: 首頁 ::  :: 聯系 ::  :: 管理 ::
            30 隨筆 :: 0 文章 :: 11 評論 :: 0 Trackbacks
          由于JAVA里沒有sizeof函數,所以想辦法解決一下。

          感謝CSDN網友:dogod

          import java.io.*;

          public class abc {

              
          public static void main(String[] args) {

                  
          char cr = 1;
                  
          byte be = 1;
                  
          short st = 1;
                  
          int it = -1;
                  
          long lg = 1;
                  
          float ft = 1;
                  
          double de = 1;

                  
          int cnt;
                  
          byte x;
                  
          int cot = 0;
                  
          int byteSize = 0;

                  
          // System.out.println("Float.size: "+Float.SIZE);
                  
          // System.out.println("Double.size: "+Double.SIZE);

                  
          for (cnt = 1; (cr <<= 1!= 0; cnt++)
                      ;
                  System.out.println(
          "char'sBits:" + cnt);

                  
          for (cnt = 1; (be <<= 1!= 0; cnt++)
                      ;
                  System.out.println(
          "byte'sBits:" + cnt);
                  byteSize 
          = cnt;

                  
          for (cnt = 1; (st <<= 1!= 0; cnt++)
                      ;
                  System.out.println(
          "short'sBits:" + cnt);

                  
          for (cnt = 1; (it <<= 1!= 0; cnt++)
                      ;
                  System.out.println(
          "int'sBits:" + cnt);

                  
          for (cnt = 1; (lg <<= 1!= 0; cnt++)
                      ;
                  System.out.println(
          "long'sBits:" + cnt);

                  
          // 用字節流處理double
                  try {
                      ByteArrayOutputStream buf 
          = new ByteArrayOutputStream();
                      DataOutputStream out 
          = new DataOutputStream(buf);
                      out.writeDouble(de);
                      out.close();
                      DataInputStream in 
          = new DataInputStream(new ByteArrayInputStream(
                              buf.toByteArray()));

                      
          while ((x = (byte) in.readByte()) != -1{

                          
          // System.out.println("byte["+cot+"]:"+x);
                          cot++;
                      }

                      in.close();

                  }
           catch (IOException e) {
                      System.out.println(
          "EOF!!!");
                  }

                  System.out.println(
          "The Double's bit size is :" + cot * byteSize);

                  
          // 用字節流處理float
                  try {
                      cot 
          = 0;
                      ByteArrayOutputStream buf 
          = new ByteArrayOutputStream();
                      DataOutputStream out 
          = new DataOutputStream(buf);
                      out.writeFloat(ft);
                      out.close();
                      DataInputStream in 
          = new DataInputStream(new ByteArrayInputStream(
                              buf.toByteArray()));

                      
          while ((x = (byte) in.readByte()) != -1{

                          
          // System.out.println("byte["+cot+"]:"+x);
                          cot++;
                      }

                      in.close();

                  }
           catch (IOException e) {
                      System.out.println(
          "EOF!!!");
                  }

                  System.out.println(
          "The Float's bit size is :" + cot * byteSize);

              }


          }

          posted on 2006-03-13 13:33 石頭JAVA擺地攤兒 閱讀(738) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 延川县| 广饶县| 富平县| 巫山县| 象山县| 莱西市| 塔河县| 东山县| 岑溪市| 荔波县| 聂拉木县| 类乌齐县| 镇远县| 孟州市| 海林市| 奈曼旗| 琼海市| 锦州市| 淳化县| 开封市| 新晃| 定南县| 保亭| 平邑县| 西吉县| 潞城市| 郓城县| 谢通门县| 长海县| 漯河市| 凤凰县| 大渡口区| 安平县| 彩票| 巴林左旗| 和顺县| 井陉县| 嘉峪关市| 镇沅| 冕宁县| 新郑市|