當前位置:首頁 » 編程語言 » c語言掩碼

c語言掩碼

發布時間: 2022-04-19 13:43:04

❶ 請問一個c語言中定義掩碼的問題

unsigned int male = 0xF轉成二進制就是1111,也就是定義低四位

unsigned int male = 0xABC轉成二進制是1010 1011 1100,定義的是3、4、5、6、8、10、12位

❷ C語言位運算掩碼

一、位運算符c語言提供了六種位運算符:
&按位與
|按位或
^按位異或
~取反
<<左移
>>右移
1.按位與運算按位與運算符"&"是雙目運算符。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1,否則為0。參與運算的數以補碼方式出現。
例如:9&5可寫算式如下:00001001(9的二進制補碼)&00000101(5的二進制補碼)00000001(1的二進制補碼)可見9&5=1。
按位與運算通常用來對某些位清0或保留某些位。例如把a的高八位清0,保留低八位,可作a&255運算(255的二進制數為0000000011111111)。
main(){
inta=9,b=5,c;
c=a&b;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}
2.按位或運算按位或運算符「|」是雙目運算符。其功能是參與運算的兩數各對應的二進位相或。只要對應的二個二進位有一個為1時,結果位就為1。參與運算的兩個數均以補碼出現。
例如:9|5可寫算式如下:00001001|00000101
00001101(十進制為13)可見9|5=13
main(){
inta=9,b=5,c;
c=a|b;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}
3.按位異或運算按位異或運算符「^」是雙目運算符。其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。參與運算數仍以補碼出現,例如9^5可寫成算式如下:00001001^0000010100001100(十進制為12)
main(){
inta=9;
a=a^15;
printf("a=%d\n",a);
}
4.求反運算求反運算符~為單目運算符,具有右結合性。其功能是對參與運算的數的各二進位按位求反。例如~9的運算為:~(0000000000001001)結果為:1111111111110110
5.左移運算左移運算符「<<」是雙目運算符。其功能把「<<」左邊的運算數的各二進位全部左移若干位,由「<<」右邊的數指定移動的位數,
高位丟棄,低位補0。例如:a<<4指把a的各二進位向左移動4位。如a=00000011(十進制3),左移4位後為00110000(十進制48)。6.右移運算右移運算符「>>」是雙目運算符。其功能是把「>>」左邊的運算數的各二進位全部右移若干位,「>>」右邊的數指定移動的位數。
例如:設a=15,a>>2表示把000001111右移為00000011(十進制3)。應該說明的是,對於有符號數,在右移時,符號位將隨同移動。當為正數時,最高位補0,而為負數時,符號位為1,最高位是補0或是補1取決於編譯系統的規定。turboc和很多系統規定為補1。
main(){
unsigneda,b;
printf("inputanumber:");
scanf("%d",&a);
b=a>>5;
b=b&15;
printf("a=%d\tb=%d\n",a,b);
}
請再看一例!
main(){
chara='a',b='b';
intp,c,d;
p=a;
p=(p<<8)|b;
d=p&0xff;
c=(p&0xff00)>>8;
printf("a=%d\nb=%d\nc=%d\nd=%d\n",a,b,c,d);
}

❸ 關於C語言定義掩碼

1、比如定義一個數
int a=0x1111
(unsigned int male=0x4)那麼 a|male 的值就是0001 0001 00010101 只有第三位影響了
unsigned int male=0xFF 那麼 a|male 的值就是111111111 0001 0001 後8位值不變


2、常式:

#include<stdio.h>
#include<conio.h>
#include<ctype.h>

#defineMAX_PASSWD_LEN20

char*GetPasswd(charpasw[]){
unsignedcharch;
inti=0;
while((ch=_getch())!=' '){
if(i>0&&ch==''){
--i;
putchar('');
putchar('');
putchar('');
}
elseif(i<MAX_PASSWD_LEN&&isprint(ch)){
pasw[i++]=ch;
putchar('*');

}
}
putchar(' ');
pasw[i]='';
returnpasw;
}
intmain(){
charpsw[MAX_PASSWD_LEN]={0};
printf("%s ",GetPasswd(psw));
return0;
}

❹ c語言8進制對int類型掩碼的問題,如下

整數如果控制長度小於實際長度則全部輸出,如果控制長度大於實際長度則左側補空格使長度滿足。實數由m.n來控制總長度和小數部分長度,先由n確定小數部分,再看總長度是否大於控制總長度。如果大於控制總長度則整數部分無變化輸出,如果總長度小於控制總長度則整數部分前面還要加空格補齊總長度。滿意請給最佳。

❺ 急求一道關於IP地址與子網掩碼的C語言編程題(用C語言實現)

不知道您有沒有學習過計算機網路。如果沒有,下面簡單介紹一下IP地址和掩碼。
IP地址是32位的,也就是4位元組。取值可以任意。
掩碼也是32位的,一般建議前面的位都為1,後面的位都為0。所以本題:
(1)只要是32位的都是有效的。
(2)判斷是否全1後面接全0,可用如下代碼實現:
#include<stdio.h>
void main()
{
unsigned yanma,bianliang=0x80000000;
int isyanma=0,i;
printf("用十六進制輸入一個32位整數\n");
scanf("%x",&yanma);
for(i=0;i<32;i++)
{
if(yanma==bianliang)
{
isyanma=1;
break;
}
bianliang=bianliang>>1;
bianliang+=0x80000000;
}
if(isyanma)
printf("%x是掩碼\n",yanma);
else
printf("%x不是掩碼\n",yanma);
}
(3)如果掩碼的前n位為1,那麼此IP所在網路全部有效IP地址是此IP地址的前n位不變,後面的位從全0到全1,比如IP地址為1.1.1.1掩碼為FFFF0000,那麼此IP地址所在網路的全部有效IP地址是從1.1.0.0到1.1.255.255。
(4)兩個IP地址都與掩碼進行二進制與,看得到的結果是否相同,如果相同則在同一子網中,否則不在同一子網中。這個用c很容易實現。

❻ c語言中的掩碼

注意0x是表示16進制數的意思,第四位是10進制的8,第五位是10進制的16,轉成16進制就是0x10,是沒錯的

❼ C語言掩碼輸入

#include<stdio.h>
#include<conio.h>
#include<ctype.h>

#defineMAX_PASSWD_LEN20

char*GetPasswd(charpasw[]){
unsignedcharch;
inti=0;
while((ch=_getch())!=' '){
if(i>0&&ch==''){
--i;
putchar('');
putchar('');
putchar('');
}
elseif(i<MAX_PASSWD_LEN&&isprint(ch)){
pasw[i++]=ch;
putchar('*');

}
}
putchar(' ');
pasw[i]='';
returnpasw;
}


intmain(){
charpsw[MAX_PASSWD_LEN]={0};
printf("%s ",GetPasswd(psw));
return0;
}

❽ c語言中怎樣用掩碼判斷二進制正負

用掩碼的話,如果是16位整數x,
可以這樣:
if(x&0x8000)printf("%d是一個負數\n",x);
else printf("%d不是一個負數\n",x);

如果是32位整數x,
可以這樣:
if(x&0x80000000)printf("%d是一個負數\n",x);
else printf("%d不是一個負數\n",x);

熱點內容
如何開啟電腦伺服器無法上網 發布:2025-01-23 17:37:06 瀏覽:391
安卓手機鎖了怎麼開 發布:2025-01-23 17:21:18 瀏覽:136
經濟學演算法 發布:2025-01-23 17:13:46 瀏覽:421
如何和軟體聯系伺服器 發布:2025-01-23 17:13:00 瀏覽:800
javacrc16演算法 發布:2025-01-23 17:11:31 瀏覽:225
編程加圖片 發布:2025-01-23 17:10:33 瀏覽:567
中國風網站源碼 發布:2025-01-23 17:05:56 瀏覽:680
pythonfilter用法 發布:2025-01-23 17:04:26 瀏覽:569
java轉number 發布:2025-01-23 16:58:11 瀏覽:477
解壓的英語作文 發布:2025-01-23 16:45:05 瀏覽:969