#include?stdio.h
成都創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供安陽(yáng)縣企業(yè)網(wǎng)站建設(shè),專(zhuān)注與網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為安陽(yáng)縣眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。
#include?limits.h
char?*?to_binary_str(char?*?buffer,?int?value)
{
int?i;
for?(i?=?sizeof(int)?*?8?-?1;?i??-1;?i--)
buffer[31?-?i]?=?((value??i)??1)?+?'0';
buffer[sizeof(int)?*?8]?=?'\0';
return?buffer;
}
int?main(void)
{
char?buffer[33];
int?n;
scanf("%d",?n);
if?(n?=?0)?{
printf("反碼:%s\n",?to_binary_str(buffer,?n));
printf("補(bǔ)碼:%s\n",?to_binary_str(buffer,?n));
printf("原碼:%s\n",?to_binary_str(buffer,?n));
}?else?{
if?(n?==?INT_MIN)
printf("反碼:1%s\n",?to_binary_str(buffer,?~n));
else
printf("反碼:%s\n",?to_binary_str(buffer,?n?-?1));
printf("補(bǔ)碼:%s\n",?to_binary_str(buffer,?n));
if?(n?==?INT_MIN)
printf("原碼:1%s\n",?to_binary_str(buffer,?n));
else
printf("原碼:%s\n",?to_binary_str(buffer,?~n?+?1?|?INT_MIN));
}
return?0;
}
extern 定義在前面
extern可以置于變量或者函數(shù)前,以標(biāo)示變量或者函數(shù)的定義在別的文件中,提示編譯器遇到此變量和函數(shù)時(shí)在其他模塊中尋找其定義
extern "C"的作用是,告訴C++編譯器,下面的代碼按照C的方式進(jìn)行編譯
我不是不懂extern修飾符的含義,我是問(wèn),為什么函數(shù)原型前面加一個(gè)extern修飾符?
不是很清楚嗎 有這個(gè)表示 是說(shuō)明 他在別的文件 里面有定義 編譯器 要知道 你在別的文件中定義 使用 但是要在別的文件里面使用它 不告訴編譯器 他知道 嘛 你知道不管用
1)原碼表示
原碼表示法是機(jī)器數(shù)的一種簡(jiǎn)單的表示法。其符號(hào)位用0表示正號(hào),用:表示負(fù)號(hào),數(shù)值一般用二進(jìn)制形式表示。設(shè)有一數(shù)為x,則原碼表示可記作[x]原。
例如,X1= +1010110
X2= 一1001010
其原碼記作:
[X1]原=[+1010110]原=01010110
[X2]原=[-1001010]原=11001010
在原碼表示法中,對(duì)0有兩種表示形式:
[+0]原=00000000
[-0] 原=10000000
2)補(bǔ)碼表示
機(jī)器數(shù)的補(bǔ)碼可由原碼得到。如果機(jī)器數(shù)是正數(shù),則該機(jī)器數(shù)的補(bǔ)碼與原碼一樣;如果機(jī)器數(shù)是負(fù)數(shù),則該機(jī)器數(shù)的補(bǔ)碼是對(duì)它的原碼(除符號(hào)位外)各位取反,并在未位加1而得到的。設(shè)有一數(shù)X,則X的補(bǔ)碼表示記作[X]補(bǔ)。
例如,[X1]=+1010110
[X2]= 一1001010
[X1]原=01010110
[X1]補(bǔ)=01010110
即 [X1]原=[X1]補(bǔ)=01010110
[X2] 原= 11001010
[X2] 補(bǔ)=10110101+1=10110110
機(jī)器數(shù)的補(bǔ)碼可由原碼得到。如果機(jī)器數(shù)是正數(shù),則該機(jī)器數(shù)的補(bǔ)碼與原碼一樣;如果機(jī)器數(shù)是負(fù)數(shù),則該機(jī)器數(shù)的補(bǔ)碼是對(duì)它的原碼(除符號(hào)位外)各位取反,并在未位加1而得到的。設(shè)有一數(shù)X,則X的補(bǔ)碼表示記作[X]補(bǔ)。
例如,[X1]=+1010110
[X2]= 一1001010
[X1]原=01010110
[X1]補(bǔ)=01010110
即 [X1]原=[X1]補(bǔ)=01010110
[X2] 原= 11001010
[X2] 補(bǔ)=10110101+1=10110110
(3)反碼表示法
機(jī)器數(shù)的反碼可由原碼得到。如果機(jī)器數(shù)是正數(shù),則該機(jī)器數(shù)的反碼與原碼一樣;如果機(jī)器數(shù)是負(fù)數(shù),則該機(jī)器數(shù)的反碼是對(duì)它的原碼(符號(hào)位除外)各位取反而得到的。設(shè)有一數(shù)X,則X的反碼表示記作[X]反。
例如:X1= +1010110
X2= 一1001010
[X1]原=01010110
[X1]反=[X1]原=01010110
[X2]原=11001010
[X2]反=10110101
反碼通常作為求補(bǔ)過(guò)程的中間形式,即在一個(gè)負(fù)數(shù)的反碼的未位上加1,就得到了該負(fù)數(shù)的補(bǔ)碼。
例1. 已知[X]原=10011010,求[X]補(bǔ)。
分析如下:
由[X]原求[X]補(bǔ)的原則是:若機(jī)器數(shù)為正數(shù),則[X]原=[X]補(bǔ);若機(jī)器數(shù)為負(fù)數(shù),則該機(jī)器數(shù)的補(bǔ)碼可對(duì)它的原碼(符號(hào)位除外)所有位求反,再在未位加1而得到?,F(xiàn)給定的機(jī)器數(shù)為負(fù)數(shù),故有[X]補(bǔ)=[X]原十1,即
[X]原=10011010
[X]反=11100101+1
[X]補(bǔ)=11100110
例2. 已知[X]補(bǔ)=11100110,求[X]原。
分析如下:
對(duì)于機(jī)器數(shù)為正數(shù),則[X]原=[X]補(bǔ)
對(duì)于機(jī)器數(shù)為負(fù)數(shù),則有[X]原=[[X]補(bǔ)]補(bǔ)
現(xiàn)給定的為負(fù)數(shù),故有:
[X]補(bǔ)=11100110
[[X]補(bǔ)]反=10011001+1
[[X]補(bǔ)]補(bǔ)=10011010=[X]原+1
[[X]補(bǔ)]補(bǔ)=10011010=[X]原
總結(jié)一下,原碼(為負(fù)時(shí),正時(shí)都不變)全部取反即得到反碼,反碼加
"1"就得到補(bǔ)碼了,就是這么簡(jiǎn)單。
換算方法如下:
1、數(shù)在計(jì)算機(jī)中是以二進(jìn)制形式表示的。
2、數(shù)分為有符號(hào)數(shù)和無(wú)符號(hào)數(shù),原碼、反碼、補(bǔ)碼都是有符號(hào)定點(diǎn)數(shù)的表示方法。
3、一個(gè)有符號(hào)定點(diǎn)數(shù)的最高位為符號(hào)位,0是正,1是副;【原碼】就是這個(gè)數(shù)本身的二進(jìn)制形式。
4、正數(shù)的【反碼】和補(bǔ)碼都是和原碼相同;負(fù)數(shù)的【反碼】是將其原碼除符號(hào)位之外的個(gè)位求反。
拓展資料
1、C語(yǔ)言是一門(mén)通用計(jì)算機(jī)編程語(yǔ)言,廣泛應(yīng)用于底層開(kāi)發(fā)。C語(yǔ)言的設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語(yǔ)言。
2、盡管C語(yǔ)言提供了許多低級(jí)處理的功能,但仍然保持著良好跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫(xiě)出的C語(yǔ)言程序可在許多電腦平臺(tái)上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機(jī)或稱(chēng)MCU)以及超級(jí)電腦等作業(yè)平臺(tái)。
原碼:正數(shù)末尾取0,負(fù)數(shù)尾數(shù)為1;補(bǔ)碼:正數(shù)=原碼,負(fù)數(shù)為反碼(除符號(hào)位)+1 比如 12 -12 原碼 0001100 1001100反碼 0001100 1110011補(bǔ)碼 0001100 1110110
1、str--通常,程序員喜歡用它作字符串變量名。它是string(英文詞、字符串的縮寫(xiě))。
2、Str函數(shù),返回代表一數(shù)值的Variant(String)。語(yǔ)法Str(number)必要的number參數(shù)為一Long,其中可包含任何有效的數(shù)值表達(dá)式。說(shuō)明當(dāng)一數(shù)字轉(zhuǎn)成字符串時(shí),總會(huì)在前頭保留一空位來(lái)表示正負(fù)。
本文標(biāo)題:c語(yǔ)言str函數(shù)的原碼,c語(yǔ)言strrev函數(shù)代碼
本文URL:http://jinyejixie.com/article28/dsedjjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、企業(yè)網(wǎng)站制作、關(guān)鍵詞優(yōu)化、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站內(nèi)鏈、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)