『壹』 C語言中高8位低8位問題
把8位二進制賦值給16位二進制的叢喊時候,要進行高位枝鄭渣擴展猛悄。
例如把0xxxxxxx賦值給16位變數的結果是00000000 0xxxxxxx
再入把1xxxxxxx賦值給16位變數的結果是11111111 1xxxxxxx
所以,你看看下面的程序:
main()
{
char c='\376';
int i=c;
printf("c=%d,i=%d\n",c,i);
}
允許的結果是:
c=-2,i=-2
你能夠理解吧。
『貳』 c++程序「低八位」有一句不理解
還是以十進制整數2010為例吧,它的二進制數為11111011010B,如果要取該數的低八位,需要用到邏輯與運飢悔算。我們知道,與運算的規則是 0&0=0 0&1=0 1&0=0 1&1=1,爛昌正只有當相與迅逗的位都為1時結果才為1。所以要提取它的低八位,只需要該數與上1111111B(即十六進制的0xFF)。2010二進制為11位,與運算時11111111B位數不足,高位自動補零湊足11位,成為00011111111B
11111011010
與 00011111111
--------------------------
00011011010
結果為00011011010,即11011010B,即218
因此cout<<(i&0X0FF)<<endl; 的含義是:得到i&0xFF取低八位的結果,輸出到屏幕,再輸出一個回車
『叄』 C語言中什麼叫做高八位和低八位啊
高八位和低八位:內存里,一個單元是一個位元組,也升迅豎就是8位。如果是16位的指令,就是同時操作連續昌裂的2個內存地址,將這連續的2個內存地址當成一個單位,所以就有高8位和低8位之分。
由於計算機僅識別二進制描述的數字,所以對一個內存地址,也就是8位二進制,如:0000 0001,0000就是高四位,0001就是低四位。
當然2個內存地址,就是16位二進制,也就是:0000 0001 0000 0002。0000 0001 就是高八位,0000 0002就是低八位。
每個八位中又分成高低四位。如:1010 0001 1111 0101,換算成16進制就是:1010–10(10進制)—A(16進制),0001–1(10進制)—1(16進制)所以他的高八位就是A1,同樣它的低八位就是F5。
(3)gb碼8位低八位怎麼編程擴展閱讀:
如何在C語言中的ascII碼表裡查找高四位、低吵大四位:
ascii碼在C語言中用char型存儲,一個char佔一個位元組,即8位。
當寫成二進製表達形式時,就是8個0或者1的數字,這8個數字中,左邊四個稱為高四位,右邊四個稱為低四位。
所以在查ascii碼表時,需要:
1、把要查的值,轉成二進制值;
2、得到高四位值,及低四位值;
3、根據高四位值查表,找到所在列;
4、根據低四位值查表,找到所在行;
5、所在行列的交叉格,就是要查找的字元。
『肆』 c語言編程將16位無符號數的高8位和低8位交換.
取出高8位,然後右移8位,再取出低8位,然後左移8位,再把它們喊衫相加就可以了,代碼:
#include<stdio.h>
unsignedshort跡滲隱MyConvert(unsignedshortsval)
{
return((sval&0x00ff)<<8)+((sval&0xff00)>>8);
}
intmain()
{
unsignedshortsval=0xabcd;
printf("%d,0x%X ",sval,sval);
sval=MyConvert(sval);
printf("%d,0x%X ",sval,sval);
return姿廳0;
}
測試截圖:
『伍』 在C語言中怎樣獲得漢字編碼
可以得到漢字的每個位元組的ASCII碼(內碼)汪前值,也可以得到它們的區喚則位碼:
#include<stdio.h>
intmain()
{unsignedchars[11];inti,a,b;
printf("請輸入姓名:");
gets(s);
printf("漢字 ASCII碼 內碼 區位碼 ");
for(i=0;s[i];i+=2)
{a=s[i];和陵棚b=s[i+1];
printf("%c%c: %d%d %X%X %d",a,b,a,b,a,b,a-160);
if(b<170)printf("0%d ",b-160);
elseprintf("%d ",b-160);
}
system("pause");
return0;
}
『陸』 c語言,一個無符號整型數,怎麼獲取它的低8位,怎麼用8位二進制替換掉它的低8位
假如
unsigned
int
a
就是那個無符號的整形數
,a&0xff就獲取了a的低8位。假如你要替換的8位衡檔困二進制是01101100b,直接a&0xffffff00|01101100b就將a的第八位換成了咐念你蠢山想替換的8位二進制數。
『柒』 單片機的高八位和低八位,能不能用個簡單的程序例子說明下用法
最直接的例猛檔橡枝旁子,就是定時器初始化,比如:
TMOD=0x01;//定時器蠢御0設為工作方式1
TH0=(65536-50000)/256;//初值高八位賦值給TH0
TL0=(65536-50000)%256;//初值低八位賦值給TL0
『捌』 什麼是高8位和低8位啊!如何計算啊!
16位數據敬漏或者匯流排的話,高8位就是指十六位01二進孝稿薯制碼的巧者前8個,低8位是後面8個:0101010110101010,高8位01010101,低8位10101010
『玖』 C語言位運算高八位低八位的問題
int bit_16;//16位,
char mbs_8,lbs_8;//儲存高6位,低8位的變戚察晌量;沒陸
mbs_8=bit_16>>8;//獲取高8位,
lbs_8=bit_16;//獲取高鋒低8位;
『拾』 匯編里的低8位和高8位是什麼意思
一個位元組是8為,匯編中,為了表示一個整數類型,用兩個位元組來虛磨表示,散讓即總共16位。同時在匯編中,一個整型是用二進制來表示的。例如2 的二進制為10,4為100,3是11。但是用兩個位元組表示3為0000 0000 0000 0011,共16為,20是0000 0000 0001 0100.其中前0000 0000為高8位,後邊0001 0100為低8位。兩個位元組的數據能表示正65535 - 負65536之間的數,如257表示為0000 0001 0000 0001.所以0000 00001為高差掘斗8位,0000 0001為低8位