PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
Fw: [問題] 為什麼互為2的補數的兩個數字,必定是相
作者:
lueichun
(no anonymous)
2021-05-11 19:58:53
※ [本文轉錄自 Programming 看板 #1Wcd5CQ0 ]
作者: lueichun (= =) 看板: Programming
標題: [問題] 為什麼互為2的補數的兩個數字,必定是相
時間: Tue May 11 19:58:02 2021
如題,為什麼互為2的補數的兩個數字,彼此一定是相反數呢?
例如0101=5 那麼1011就=-5
01111111=127 那麼10000001就=-127
請問為什麼會這樣呢?
作者:
ucrxzero
(RX-0)
2021-05-11 21:01:00
定義
作者: wray (Rayf)
2021-05-11 22:31:00
你的相反數是什麼意思?0←→1嗎?你沒發現不盡然嗎?1的補數才會這樣子。原因有二個:1.可以用加負數的方式來實現減法2.用not電路很簡單就可以正變負、負變正。而2的補數你自己查
作者:
LPH66
(-6.2598534e+18f)
2021-05-11 23:26:00
數學上的相反數吧
作者: NciscalA
2021-05-12 02:03:00
可以看看這個
https://hackmd.io/@sysprog/binary-representation?t
ype=view
作者:
Lipraxde
(Lipraxde)
2021-05-12 08:55:00
A - B = C; A = C + B; C + B - B = C; 要用加法來做出除法的效果時 (- B),相當於要找一個數字與 B 相加等於 0,也就是補數。「A + 補數 B」有溢位時表示 A > B,結果 (C) 為正數,沒溢位時表示 A < B,結果為負數。管他取幾個 not 還是相反數,編碼起來相加等於 0 的就當他是補數就對了。
作者: longlongint (華哥爾)
2021-05-15 09:24:00
前面定義有人補了 我補充跟二補數相加會變0的原因只做0 1 交換的話,兩數相加是全1111…,再多加1就會滿出來變回0
繼續閱讀
[問題][QT] 如何解壓縮到自己程式的變數裡
liu2007
[問題] c語言 有關scanf不加取址符&
ZephyrusLin
Re: [問題] 一個讀取 uart 的 process
jimmytzeng
[問題] 2D 陣列之記憶體位址有移位情形
gowrite
[問題] struct array 存值錯亂
kingfsg7326
[問題] bit位移請教
IOP14759
[問題] 紅黑樹construct設root = nil遇到的問題
superme7
[問題] 一個讀取 uart 的 process
gn00618777
[問題] Quicksort選mid為pivot出現問題
superme7
Re: [問題] Code::Blocks環境#import MSXML問題
LPH66
Links
booklink
Contact Us: admin [ a t ] ucptt.com