本文目錄一覽:
- 1、C語言,二進制,八進制,十六進制的問題
- 2、C語言中的二進制,八進制,十進制,十六進制是什麼,還有,數組,
- 3、c語言中的二進制,八進制,十進制,十六進制都怎麼算……,可否舉例,謝?
- 4、那位高人能給我講講C語言中二進制,八進制,16進制是怎麼換算的?謝謝了!!!
C語言,二進制,八進制,十六進制的問題
長度為1個字節的二進制的整數,若採用補碼錶示,且由4個“1”和4個“0”組成,則可表示的最小整數為___
____。
A.-127
B.-121
C.-15
D.-7
答:
搞不清,就挨個算算:
-127的補碼是:1000
0001
-121的補碼是:1000
0111
-15的補碼是:1111
0001
-7的補碼是:1111
1001
只有-121的補碼是由4個“1”和4個“0”組成,答案選
B.-121。
———————————–
在計算機科學中,常常會遇到用二進制、八進制、十六進制等表示的數據。對於算術表達式1023-377Q+100H,其運算結果是____
_____。
A.1024
B.
746H
C.
746Q
D.
1023
答:Q是8進制的標記,H是16進制的標記。
1023-377Q+100H,換算成十進制,就是:
1023
-255+256
=
1024
答案應選
A.1024。
C語言中的二進制,八進制,十進制,十六進制是什麼,還有,數組,
進制是一種計數系統,進位的制度,規則。
我們從小學習以及日常使用的是10進制系統,原始社會沒有數學概念時都是用石頭計數,比如去采果子,採到多少就用多少小石頭對應,因為老祖宗根本不知道1234567890這些符號可以代替石頭。
用實物計數是很麻煩,後來人類進步了逐漸有了數的概念也有了文字,從而產生了數學符號(文字本身就是個符號),而人們發現用數字符號代替石頭計數方便很多,最終演變並統一採用阿拉伯數字作為符號,那就是0123456789。
為什麼沒有大於9的單獨的符號,因為人們覺得0-9等10個夠了,因為10個數字很整齊,也許覺得再多就亂了(我猜的),大於9的數字就用2個符號表示,因此各位上滿10了,就在前面(左邊)寫1,原來的位置寫0,就構成“10”表示數字10,這就是逢十進一的計數制度,簡稱十進制。
蘿莉啰嗦說了那麼多,為的是讓你理解其他進制,其實沒什麼特別,無非就是把“逢十進一”改成“逢n進一”,n就是進制。你當代數代入即可。
比如二進制,就是逢二進一,在二進制中因為只需要2個符號,所以只需要“0”和“1”就可以了。那麼如果要表示大於1的數怎麼辦,那就是進位,比如2(10)=10(2),括號裡面表示進制,也就是(10進制的)2=(2進制的)10。其他進制以此類推。
特別要說明的是16進制中,由於需要16個符號,因此0-9這10個符號不夠了,只能問字母借,按照順序取英文字母序列的頭6個字母“ABCDEF”作為16進制中餘下的幾個符號,分別代表:10、11、12、13、14、15。如此一個16進制數,比如F等於10進制的15。滿16就進位成10(16),同樣括號內的數字代表進制。
為什麼要有這麼多的進制?首先因為計算機電路中開閉狀態最穩定,不容易受電路里的電涌、電磁波(電磁感應)影響而改變儲存在裡面的數據(電平狀態),電子線路很容易做到將電平鎖住在兩個極端。因此目前為止計算機普遍採用2進制,也是出於無奈。
當然呈現在你面前的大部分應用程序中的數字全部是10進制的,因為計算機幫你轉換了,而作為編程人員,你必須掌握二進制。而8進制、16進制等常用的進制都可以與2進制方便轉換,在有些場合比較有用,比如查看內存一個字節,如果按值直接顯示一個數,比如一個8位2進制11011101,就會佔很大篇幅,不便於顯示和描述,而轉換成16進制DD就簡短的多,方便程序員分析,DD的10進制數為221,你可以用WINDOWS中帶的計算器驗證。
c語言中的二進制,八進制,十進制,十六進制都怎麼算……,可否舉例,謝?
先講一下,二進制與十進制。
以10為例,過程如圖。
10進制轉化為二進制
10÷2=5….0(餘數為0)
5÷2=2….1(餘數為1)
2÷2=1….0
1÷2=0….1
然後,非常重要的一步,將餘數倒序相加
即:1010
這裡特地說明一下,當被除數比除數小時,餘數永遠為它自己。
如:8÷10 餘數為8
二進制轉化為十進制
1010
從 右 算起分別對應 :
1 2 4 8
也就是 2的1次方,2次方,3次方
第三步,小數部分怎麼計算呢
如10.1
很簡單,將0.1乘以2
在乘到整數之前,將結果的整數取出。
如:
0.1×2=0.2…..0
0.2×2=0.4…..0
0.4×2=0.8……0
0.8×2=1.6……1
正序排下來: 0001
至於八進制和十六進制,其實是一樣的方法。就是把2換成8。
順便說一下,如果你是要做開發而不是考試的話可以直接用win系統自帶的計算器,選擇“程序員” 模式可以直接得到2.8.10.16進制的所有結果。
那位高人能給我講講C語言中二進制,八進制,16進制是怎麼換算的?謝謝了!!!
二進制轉換含小數點部分
十六進制大同小意,把除以二的數改成16就可以了,如果不明白加我百度HI
#include
stdio.h
void
bit(int
a);
void
bit2(double
a);
int
main()
{
double
a;
int
b;
scanf(“%lf”,a);
b
=
(int)a;
printf(“%d”,b);
if((a-b)0(a-b)1)
{
bit(b);
bit2(a-b);
}
else
bit(b);
}
void
bit(int
a)
{
if(a0)
bit(a/2);
printf(“%d”,a%2);
}
void
bit2(double
a)
{
static
int
c
=
0;
if(c==0)
printf(“.”);
printf(“%d”,(a*21)?(int)(a*2):0);
if(a==0||c5)
{
++c;
bit2(a*2-(int)(a*2));
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/184068.html