回覆列表
  • 1 # 使用者1415180428147

     首先,我們看一下這個數軸,8位二進位制表示數值型資料,它應該是落在0~256(不含 256)區間上,當這個數落在0~128(不含128)區間上時,我們說它是一個正數,至於正多少取決於這個數從0點往右走了多少。

      如:+33對應的二進位制是00010001

      如果這個數落在後半軸上,也就是128~256(不含256)區間上時,我們說它是一個負數,至於負多少取決於它離終點256還差多少。

      如:156表示就不再是+156,而是表示-100,二進位制編碼為:10011100

      稍微細心的朋友可能會發現,凡是落在後半軸的數,也就是負數,都有一個共同點,那就是這個數第1位二進位制編碼一定是1,而落在前半軸的數第1位一定是0,這樣就造成很多人誤認為1就是僅僅簡單的表示負號,而0表示正號,這是不科學的。但反過來說是可以的:負數的最高位一定是1,正數的最高位一定是0

      可能有朋友會問了,156表示不是+156,那+156該怎麼表示呢,它的二進位制編碼又是多少呢?

      在這裡我要強調一下,我們現在是假設只用1個位元組(也是8位二進位制)來表示帶符號的整數,那麼它能表示的數的範圍只能是-128~+127之間,156是表示不下的,明白嗎。

      好的,到這裡相信各位基本瞭解了負數的表示原理了,在這裡我還想溝通一下求負數表示的另外一種方法,這就是很多書上提到的採用補碼的方法

      要求一個負數的二進位制表示方式,可以先求出它的原碼,然後每位取反得出它的反碼,反碼再加1得出補碼

      如:假設還是以8位二進位制來表示帶符號的整數

      -56的原碼是:00111000

      那麼它的反碼是:11000111

      補碼為:11000111+1=11001000

      得出,-56在計算機內部是用11001000這串二進位制來表示的

  • 中秋節和大豐收的關聯?
  • 條形碼的工作原理是什麼啊?它具體包含了哪些資訊?