日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

C语言进制

發(fā)布時(shí)間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言进制 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一? 原碼、反碼、補(bǔ)碼

?

? ? 計(jì)算機(jī)存儲(chǔ)的數(shù)為補(bǔ)碼

? ? 數(shù)分為有符號(hào)(正、負(fù))和無(wú)符號(hào)(全是正)

?

? ? 原碼

? ? 正數(shù):數(shù)轉(zhuǎn)換為2進(jìn)制,最高位如果是0,則是整數(shù)

? ? 負(fù)數(shù):數(shù)轉(zhuǎn)換為2進(jìn)制,最高位如果是1,則是負(fù)數(shù)

? ? 反碼

? ? 正數(shù):整數(shù)的反碼還是它的原碼

? ? 負(fù)數(shù):除符號(hào)位不變,其它各位,逐位取反

?

? ? 補(bǔ)碼

? ? 正數(shù):整數(shù)的補(bǔ)碼還是它的原碼

? ? 負(fù)數(shù):反碼+1

?

? ? 2)為什么要使用補(bǔ)碼?

?

? ? 補(bǔ)碼主要是用于設(shè)計(jì)計(jì)算機(jī)的減法

?

? ? 3)已知負(fù)數(shù)的原碼求補(bǔ)碼

?

? ? 1)反碼:除符號(hào)位之外,取反

? ? 2)補(bǔ)碼:反碼+1

? ? 4)已知補(bǔ)碼求原碼:

? ? 補(bǔ)碼取反加1為原碼

?

二:位運(yùn)算:

?

? ? 一個(gè)數(shù)的二進(jìn)制機(jī)器碼之間的運(yùn)算

?

? ? C語(yǔ)言中的位運(yùn)算符介紹:

?

? ? 是一個(gè)雙目運(yùn)算,需要有兩個(gè)操作數(shù)

? ? 1)&? 按位與 (比較兩個(gè)數(shù)對(duì)應(yīng)的數(shù)碼,如果都為1,則結(jié)果為1)

? ? 口訣:同1為1

? ? 2)|? 按位或(比較兩個(gè)數(shù)對(duì)應(yīng)的數(shù)碼,如果有一個(gè)為1,則結(jié)果為1)

? ? 口訣:有1為1

? ? 3)^? 按位異或(比較兩個(gè)數(shù)對(duì)應(yīng)的數(shù)碼,如果兩個(gè)碼相同則為0,不同則結(jié)果為1)

? ? 口訣:相同為0,不同為1?

? ? 4)~? 按位取反(單目運(yùn)算,數(shù)碼逐位取反)

? ? 口訣:0變1,1變0

? ? 5)>> 按位右移?

? ? 表示所有的二進(jìn)制位,整體右移n位

? ? 注意:

? ? 1)數(shù)值得變化:每向右移動(dòng)1位相當(dāng)于除以2,保留整數(shù)部分

? ? 2)右移的時(shí)候,高位補(bǔ)符號(hào)位,低位直接舍棄

? ? 3)向右移動(dòng)的時(shí)候,不會(huì)改變一個(gè)數(shù)的正負(fù)性

?

? ? 6)<< 按位左移

? ? 表示:所有的二進(jìn)制位,都向左移動(dòng)

? ? 左移:

?

? ? 1)左移可以讓一個(gè)數(shù)變大

? ? 左移1次相當(dāng)于*2

? ? 2)左移可能會(huì)改變一個(gè)數(shù)的正負(fù)性

? ? 3)高位舍棄,低位補(bǔ)0

? ? 技巧:

? ? 1)任何數(shù)和1進(jìn)行按位與(&) 的到這個(gè)數(shù)的低位

?

三:變量的存儲(chǔ):

?

? ? 查看變量的地址使用 %p

? ? 1)內(nèi)存是由若干個(gè)1個(gè)字節(jié)的存儲(chǔ)單元組成

? ? 每個(gè)單元都有一個(gè)唯一的地址

? ? 2)內(nèi)存存儲(chǔ)數(shù)據(jù)是從高地址向地地址分配的

? ? 數(shù)據(jù)有高位和地位

? ? int a =10;

? ? 00000000 00000000 00000001 00001010

? ? 高? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 低

? ? 一個(gè)整數(shù)的各個(gè)字節(jié)存放的順序:地位存放低地址? 高位存放高地址

? ? 3)變量在內(nèi)存中最小的那個(gè)地址,是變量的首地址

?

四: 變量的修飾符:

? ? 1)改變變量的存儲(chǔ)空間

? ? short ? 2個(gè)字節(jié) ? -2^15 ~ 2^15-1;

? ? int ? ? 4

? ? long? ? 8

? ? long long 8

?

? ? 2)改變變量的符號(hào)

? ? signed ? 有符號(hào)數(shù)(默認(rèn)的時(shí)有符號(hào)的)

? ? unsigned 無(wú)符號(hào)數(shù)

五://注意:char型的常量和變量存儲(chǔ)方式是有差別的

? ? char c ='a'; ? ? //97 ? ? 1個(gè)字節(jié) -128,127

? ? int size = sizeof(c); ? ? //1

? ? //在C語(yǔ)言中char的常量會(huì)被當(dāng)做整形數(shù)據(jù)存儲(chǔ)

? ? size = sizeof('a');

? ? printf("%d\n",size);

? ? //1、存儲(chǔ)的原理,取出字符對(duì)應(yīng)的ascii碼值,轉(zhuǎn)換成2進(jìn)制,存儲(chǔ)到一個(gè)字節(jié)中

? ? char ch='A';? //65 ? ? 01000001

? ? //以字符型的形式取出來(lái):內(nèi)存存的是65,到ascii碼表中查找ascii碼值等于65的字符 ? 找到這個(gè)字符取出來(lái)

? ? printf("%c\n",ch);

?

轉(zhuǎn)載于:https://www.cnblogs.com/-boy/p/4031816.html

總結(jié)

以上是生活随笔為你收集整理的C语言进制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。