蒜頭君有乙個 int\textint 的整數,輸出它的 323232 位二進位制補碼。
輸入格式
乙個整型整數。
輸出格式
輸出一行,即該整數的補碼表示。
輸出時每行末尾的多餘空格,不影響答案正確性
樣例輸入:
樣例輸出
做這道題就是明白一點:計算機中負數用補碼來表示,因為整數補碼是本身,所以這道題其實就是輸出乙個數在計算機中的二進位制形式,超級簡單了
#include#includeusing namespace std;
int map1[110][110],map2[110][110];
int main()
}
傳送門
%i和%d區別在scanf中,%i功能更強大,能根據輸入的形式轉換成十進位制並賦值給變數,比如下面程式:
int n;
scanf("%i",&n);
cout《輸入0x10,輸出16,輸入0010輸出8(八進位制)
c語言不能直接表示二進位制,沒有數字字首表示
傳送門
c語言中可以用%o %d/%i %x輸出8 10 16進製制的數但是沒有二進位制的輸出字元,但是有itoa的函式,
注意: 計算機中負數用補碼表示,所以itoa函式求出的負數也是補碼形式
函式原型:
char *itoa( int value, char *string,int radix); [1]
原型說明:
value:欲轉換的資料。
radix:轉換後的進製數,可以是10進製、16進製制等。
#include #include int main(void)
/* itoa example */
#include #include int main ()
output:
enter a number: 1750
decimal: 1750
hexadecimal: 6d6
binary: 11011010110
注意事項itoa() 函式有3個引數:第乙個引數是要轉換的數字,第二個引數是要寫入轉換結果的目標字串,第三個引數是轉移數字時所用的基數(進製)。在上例中,轉換基數為10,就意味著以10為轉換進製。10:十進位制;2:二進位制…
itoa 並不是乙個標準的c函式,它是windows特有的,如果要寫跨平台的程式,請用sprintf。
標準庫中有sprintf,功能比這個更強,用法跟printf類似:
char str[255];
sprintf(str, 「%x」, 100); //將100轉為16進製表示的字串。
下列函式也可以將相應型別的整數轉換為字串:
將無符號整型數value轉換成字串並返回該字串,radix為轉換時所用基數
char *ltoa(long value,char *string,int radix)
將長整型數value轉換成字串並返回該字串,radix為轉換時所用基數
char *itoa(int value,char *string,int radix)
將整數value轉換成字串存入string,radix為轉換所用基數.
double atof(char *nptr)
將字串nptr轉換成雙精度數,並返回這個數,錯誤返回0
int atoi(char *nptr)
將字串nptr轉換成整型數, 並返回這個數,錯誤返回0
long atol(char *nptr)
將字串nptr轉換成長整型數,並返回這個數,錯誤返回0
double strtod(char *str,char **endptr)
將字串str轉換成雙精度數,並返回這個數,
long strtol(char *str,char **endptr,int base)
將字串str轉換成長整型數, 並返回這個數
ok,又11點多了,哎!啥也不是 輸出二進位制補碼
描述 輸入乙個整型 int 的整數,輸出它的32位二進位制補碼。輸入乙個整型整數。輸出輸出一行,即該整數的補碼表示。樣例輸入 7樣例輸出 00000000000000000000000000000111 第一位為符號位,0表示正數,1表示負數 正數的原碼,反碼,補碼相同 負數的反碼為各位取反,補碼為...
二進位制補碼
二進位制補碼 計算機儲存資料都是以0,1二進位制進行儲存。對於有符號整數儲存 對於浮點數待續 引入補碼概念。原碼即直接將真值轉換為其相應的二進位制形式,而反碼和補碼是對原碼進行某種轉換編碼方式。對於正整數,原碼,反碼和補碼都相一樣 對於負整數,補碼等於反碼加1,而反碼等於原碼除符號位不變其他位按位求...
二進位制補碼
計算機只能識別0和1,使用的是二進位制,而在日常生活中人們使用的是十進位制,正如 亞里斯多德早就指出的那樣,今天十進位制的廣泛採用,只不過我們絕大多數人生來具有10個手指頭這個解剖學事實的結果.儘管在歷史上手指計數 5,10進製 的實踐要比二或三進製計數出現的晚.摘自 數學發展史 有空大家可以看看哦...