QQ羣78928780記錄整理:90519技術話題-部分

                                                                                                        
一、代碼細節問題
劉力(402149997)
public static String formatDate(Date date){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        System.out.println(date);
        return sdf.format(date);
    }
陳聚雄(457972538)
import java.util.Date;
import java.text.*;

public class Test{
       
   public static void main(String[] args){
    Date d = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    System.out.println(sdf.format(d));
            }
    }
劉力(402149997)
yyyy-MM-dd hh:mm:ss
這裏不同 爲什麼呢
陳聚雄(457972538)
hh指的可能是12小時制。HH指24小時制。

 
二、原碼,補碼,反碼
浩爲-admin(914529681)
原碼是機器數的一種簡單的表示法。數值在計算機中表示形式爲機器數,計算機只能識別0和1,使用二進制,但日常生活中使用十進制。數值有正負之分,計算機用一個數的最高位存放符號(0爲正,1爲負)。
假設機器能處理的位數爲8,即字長爲1字節,原碼能表示數值的範圍爲(-127~-0 +0~127)共256個。 這是共享文件 d原碼、反碼、補碼.doc 的部分內容 有了數值的表示方法就可以對數進行算術運算,當兩數相加時,如果同號則數值相加;如果異號,則要進行減法。並且在進行減法時需要比較絕對值的大小,然後大數減去小數,最後還要給結果選擇符號。
爲了解決這些矛盾,人們找到了補碼錶示法,即數值一律用補碼來表示(存儲)。機器數的補碼可由原碼得到。如果機器數是正數,則該機器數的補碼與原碼一樣;如果機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,並在未位加1而得到。
在補碼中用(-128)代替了(-0),所以補碼的表示範圍爲:(-128~0~127)共256個。
注意:(-128)沒有相對應的原碼和反碼,(-128) = (10000000)。
對除符號位外的其餘各位逐位取反就產生了反碼(對於正數,其反碼與原碼相同)。反碼的取值空間和原碼相同且一一對應。
負數用補碼錶示時,可以把減法轉化爲加法。這樣,在計算機中實現起來就很方便。
補碼的原理可以用鐘錶來描述:如設標準時間爲4點正;一隻表已經7點了,爲了校準時間,可以採用兩種方法:一是將時針退 7-4=3 格;一是將時針向前撥12-3=9格。即7-3和7+9(mod12)等價,因此,把負數用補碼錶示的mod2操作,可以把減法轉化爲加法。使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理。另外,兩個用補碼錶示的數相加時,如果最高位(符號位)有進位,則進位被捨棄。 這是對d專題注意byte與int的轉換.doc 的補充,此文件以後還會修改,爭取一看就能明白原理
public class D10415Byte {   
public static void main(String[] args) {   
    byte a=-128;   
    byte b=89;        System.out.println((byte)(a+b));       
    printBinaryInt(a);   
    printBinaryInt(b);   
    printBinaryInt((byte)(a+b));        a=-100;       
    b=(byte)128;//不能直接賦值爲128,否則報錯,注意byte範圍(-128~0~127)   
    System.out.println((byte)(a+b));        printBinaryInt(a);   
    printBinaryInt(b);   
    printBinaryInt((byte)(a+b));    }

    static void printBinaryInt(int i) {   
    System.out.print("" + i + ",/tbinary:/t");   
    for (int j = 31; j >= 0; j--)       
    if (((1 << j) & i) != 0)       
        System.out.print("1");       
    else           
    System.out.print("0");            System.out.println();    }}   
執行結果如下:-39-128,
binary:    1111111111111111111111111000000089,   
binary:    00000000000000000000000001011001-39,   
binary:    1111111111111111111111111101100128-100,   
binary:    11111111111111111111111110011100-128,    binary:    1111111111111111111111111000000028,   
binary:    00000000000000000000000000011100
可加深對 4.9 計算機基礎:原碼、反碼、補碼的理解

        以上由管理員趙博偉整理

        本書不少篇章已經超出了技術的範疇,上升到人生髮展的高度,這也是副標題叫“人生需要引導” 的一個原因。加入QQ羣78928780,每週一個學習安排,多個學習小組等着你,還可分享各種根據聊天記錄整理的話題喲。
     《數據庫開發這點事》下載地址http://sites.google.com/site/howwe6/db





 

發佈了49 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章