總時間限制:
1000ms
記憶體限制:
65536kb
描述輸入乙個整型(int)的整數,輸出它的32位二進位制補碼。
輸入乙個整型整數。
輸出輸出一行,即該整數的補碼表示。
樣例輸入
7
樣例輸出
00000000000000000000000000000111
首先明確幾個概念:
原碼:如果機器字長為n,那麼乙個數的原碼就是用乙個n位的二進位制數,其中最高位為符號位:正數為0,負數為1。剩下的n-1位表示概數的絕對值。
例如: x=+101011 , [x]原= 00101011
x=-101011 , [x]原= 10101011
位數不夠的用0補全。
ps:正數的原、反、補碼都一樣:0的原碼跟反碼都有兩個,因為這裡0被分為+0和-0。
反碼:知道了什麼是原碼,那反碼就更是張飛吃豆芽——小菜一碟了。知道了原碼,那麼你只需要具備區分0跟1的能力就可以輕鬆求出反碼,為什麼呢?因為反碼就是在原碼的基礎上,符號位不變其他位按位取反(就是0變1,1變0)就可以了。
例如:x=-101011 , [x]原= 10101011 ,[x]反=11010100
補碼:補碼也非常的簡單就是在反碼的基礎上按照正常的加法運算加1。
例如:x=-101011 , [x]原= 10101011 ,[x]反=11010100,[x]補=11010101
ps:0的補碼是唯一的,如果機器字長為8那麼[0]補=00000000。
然後,我們分類討論輸入的數,分三類:0,正數、負數。
負數的時候注意一下規範寫法,不然容易個別樣例過不了。
#include#include#includeusing namespace std;
int ans[32];
int two[32];
int main()
}else if(a>0)while(a!=0);
for(int i=0;i0;i--)else
} for(int i=0;i<32;i++)
}}
輸出二進位制補碼
描述 輸入乙個整型 int 的整數,輸出它的32位二進位制補碼。輸入乙個整型整數。輸出輸出一行,即該整數的補碼表示。樣例輸入 7樣例輸出 00000000000000000000000000000111 第一位為符號位,0表示正數,1表示負數 正數的原碼,反碼,補碼相同 負數的反碼為各位取反,補碼為...
輸出二進位制補碼問題
蒜頭君有乙個 int textint 的整數,輸出它的 323232 位二進位制補碼。輸入格式 乙個整型整數。輸出格式 輸出一行,即該整數的補碼表示。輸出時每行末尾的多餘空格,不影響答案正確性 樣例輸入 樣例輸出 做這道題就是明白一點 計算機中負數用補碼來表示,因為整數補碼是本身,所以這道題其實就是...
二進位制補碼
二進位制補碼 計算機儲存資料都是以0,1二進位制進行儲存。對於有符號整數儲存 對於浮點數待續 引入補碼概念。原碼即直接將真值轉換為其相應的二進位制形式,而反碼和補碼是對原碼進行某種轉換編碼方式。對於正整數,原碼,反碼和補碼都相一樣 對於負整數,補碼等於反碼加1,而反碼等於原碼除符號位不變其他位按位求...