回覆列表
-
1 # 小屁孩有話說
-
2 # 星辰視界
在電腦內部,所有的運算都是加法。
首先,計算機把數轉換成二進位制(全是0、1程式碼,轉換都是按現成的程式進行),
如果計算加法,則把兩數按位相加(如 13+15 ,轉換後是 1101+1111 ,按 0+0=0 ,1+0=0+1=1,1+1=10 的規則,結果為 11100 ,輸出時再轉換為 28)。
如果是計算減法,則把減數取補碼(就是按位把0換成1,把1換成0)後加1,再相加。
以八位計算為例(現在計算機都是32位或64位的了),計算15-13 ,
先轉換 15=00001111 ,13=00001101 ,
取13的補碼為 11110010 ,加1 後為 11110011 ,
相加有 00001111+11110011=100000010 ,注意,位數已超過八位,把最高位捨棄,取後八位為 00000010 ,也就是十進位制的 2 。
這裡人工計算感覺老麻煩,其實在機器內部都是自動化的,它才不怕麻煩呢。
在電腦內部,所有的運算都是加法。
首先,計算機把數轉換成二進位制(全是0、1程式碼,轉換都是按現成的程式進行),
如果計算加法,則把兩數按位相加(如 13+15 ,轉換後是 1101+1111 ,按 0+0=0 ,1+0=0+1=1,1+1=10 的規則,結果為 11100 ,輸出時再轉換為 28)。
如果是計算減法,則把減數取補碼(就是按位把0換成1,把1換成0)後加1,再相加。
以八位計算為例(現在計算機都是32位或64位的了),計算15-13 ,
先轉換 15=00001111 ,13=00001101 ,
取13的補碼為 11110010 ,加1 後為 11110011 ,
相加有 00001111+11110011=100000010 ,注意,位數已超過八位,把最高位捨棄,取後八位為 00000010 ,也就是十進位制的 2 。