⑴ c語言中為什麼-0177777要轉換成原碼真值是-1。0123就不用轉換,真值是83
0177777二進制是16個1,如果是16位二進製表示十進制數-1,16位以上的二進制(如32位)表示65535
0123隻有7位二進制,用16位二進製表示是0000000001010011,表示十進制83
記住,二進制的最高位是符號位,該位為1表示負數,負數一律使用補碼(以前還有原碼和反碼表示負數,現已淘汰)
⑵ c語言中%0.83f是什麼意思啊
0.83是不正常的,這個代表輸出83位小數。
雖然可以輸出,但沒什麼意義。
float輸出超過6位小數就沒意義了。
正常應該是8.3%f
表示帶3位小數,總體8位寬度。
如果小數部分不足,會補0,整體不足8位,則補空格。
如果超過8位,則按照實際輸出。
相當於8f%和.3f%的合成。
⑶ char c=a 可以表示為char c=『\83』,char c=83嗎
字元變數的值,可以看成1個位元組的
整型量
。
例如:
c
=
32;
//
十進制
數值
c
=
0x20;
//
十六進制
數值
c
=
'a';
'a'
的值,就是
字元
a
的
ASCII
編碼
值。
⑷ C語言中比如printf(...%u...)和%d是一樣的,可是是什麼意思還有%o,能否通俗點
%u是用來輸出unsigned型數據的,既無符號數,以十進制形式輸出。
%d輸出的是整型數據,帶有負號。
通俗點就是用%d格式輸出的數可以帶有負號,%u輸出的書都沒有負號,用他們來輸出同一個正數結果是一樣的,單輸出負數時結果就不一樣了,如用%u格式輸出-1時結果是65535(Turbo C環境下)
%o輸出的是八進制數如:83轉化為八進制是123
#include<stdio.h>
void main()
{
int a=83;
printf("%d,%o\n",a,a);
}結果是:83,123
⑸ C語言中是用"OX"開頭表示是十六進制數,那十進制,二進制,八進制呢
1,C語言沒有直接輸出二進制的方法。
2,八進制在輸出的時候以0開頭,例如:0123十進制的83
3,十進制正常輸出,無特別表示。
4,十六進制在輸出的時候以0X或者0x開頭,例如0x123 十進制的291。
(5)c語言中83的值為多少擴展閱讀:
進制轉換是人們利用符號來計數的方法。進制轉換由一組數碼符號和兩個基本因素「基數」與「位權」構成。
基數是指,進位計數制中所採用的數碼(數制中用來表示「量」的符號)的個數。
位權是指,進位制中每一固定位置對應的單位值。
16進制就是逢16進1,只有0~9這十個數字,用A,B,C,D,E,F這六個字母來分別表示10,11,12,13,14,15。字母不區分大小寫。
十進制就是逢10進1。
八進制就是逢8進1,八進制數採用 0~7這八數來表達一個數。
二進制就是逢2進1。
K進制就是逢K進1。
參考資料來源:網路-進制轉換
⑹ C語言中的轉換
計算機中常用的數的進制主要有:二進制、八進制、十六進制,學習計算機要對其有所了解。
2進制,用兩個阿拉伯數字:0、1;
8進制,用八個阿拉伯數字:0、1、2、3、4、5、6、7;
10進制,用十個阿拉伯數字:0到9;
16進制就是逢16進1,但我們只有0~9這十個數字,所以我們用A,B,C,D,E,F這五個字母來分別表示10,11,12,13,14,15。字母不區分大小寫。 以下簡介各種進制之間的轉換方法:
一、二進制轉換十進制
例:二進制 「1101100」
1101100 ←二進制數
6543210 ←排位方法 例如二進制換算十進制的演算法:
1*26 + 1*25 + 0*24 + 1*23 + 1* 22 + 0*21 + 0*20
↑ ↑
說明:2代表進制,後面的數是次方(從右往左數,以0開始)
=64+32+0+8+4+0+0
=108 二、二進制換算八進制
例:二進制的「10110111011」
換八進制時,從右到左,三位一組,不夠補0,即成了:
010 110 111 011
然後每組中的3個數分別對應4、2、1的狀態,然後將為狀態為1的相加,如:
010 = 2
110 = 4+2 = 6
111 = 4+2+1 = 7
011 = 2+1 = 3
結果為:2673 三、二進制轉換十六進制
十六進制換二進制的方法也類似,只要每組4位,分別對應8、4、2、1就行了,如分解為:
0101 1011 1011
運算為:
0101 = 4+1 = 5
1011 = 8+2+1 = 11(由於10為A,所以11即B)
1011 = 8+2+1 = 11(由於10為A,所以11即B)
結果為:5BB 四、二進制數轉換為十進制數
二進制數第0位的權值是2的0次方,第1位的權值是2的1次方……
所以,設有一個二進制數:0110 0100,轉換為10進制為:
計算: 0 * 20 + 0 * 21 + 1 * 22 + 0 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100 五、八進制數轉換為十進制數
八進制就是逢8進1。
八進制數採用 0~7這八數來表達一個數。
八進制數第0位的權值為8的0次方,第1位權值為8的1次方,第2位權值為8的2次方……
所以,設有一個八進制數:1507,轉換為十進制為:
計算: 7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839
結果是,八進制數 1507 轉換成十進制數為 839 六、十六進制轉換十進制
例:2AF5換算成10進制
直接計算就是: 5 * 160 + F * 161 + A * 162 + 2 * 163 = 10997
(別忘了,在上面的計算中,A表示10,而F表示15)、 現在可以看出,所有進制換算成10進制,關鍵在於各自的權值不同。
假設有人問你,十進數 1234 為什麼是 一千二百三十四?你盡可以給他這么一個算式: 1234 = 1 * 103 + 2 * 102 + 3 * 101 + 4 * 100 十進制與二進制轉換之相互演算法
十進制轉二進制: 用2輾轉相除至結果為1 將余數和最後的1從下向上倒序寫 就是結果 例如302 302/2 = 151 餘0 151/2 = 75 餘1 75/2 = 37 餘1 37/2 = 18 餘1 18/2 = 9 餘0 9/2 = 4 餘1 4/2 = 2 餘0 2/2 = 1 餘0 故二進制為100101110 二進制轉十進制 從最後一位開始算,依次列為第0、1、2...位 第n位的數(0或1)乘以2的n次方 得到的結果相加就是答案 例如:01101011.轉十進制: 第0位:1乘2的0次方=1 1乘2的1次方=2 0乘2的2次方=0 1乘2的3次方=8 0乘2的4次方=0 1乘2的5次方=32 1乘2的6次方=64 0乘2的7次方=0 然後:1+2+0 +8+0+32+64+0=107. 二進制01101011=十進制107. 一、二進制數轉換成十進制數 由二進制數轉換成十進制數的基本做法是,把二進制數首先寫成加權系數展開式,然後按十進制加法規則求和。這種做法稱為"按權相加"法。 二、十進制數轉換為二進制數 十進制數轉換為二進制數時,由於整數和小數的轉換方法不同,所以先將十進制數的整數部分和小數部分分別轉換後,再加以合並。 1. 十進制整數轉換為二進制整數 十進制整數轉換為二進制整數採用"除2取余,逆序排列"法。具體做法是:用2去除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為零時為止,然後把先得到的余數作為二進制數的低位有效位,後得到的余數作為二進制數的高位有效位,依次排列起來。 2.十進制小數轉換為二進制小數 十進制小數轉換成二進制小數採用"乘2取整,順序排列"法。具體做法是:用2乘十進制小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數部分,又得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。 然後把取出的整數部分按順序排列起來,先取的整數作為二進制小數的高位有效位,後取的整數作為低位有效位。 1.二進制與十進制的轉換 (1)二進制轉十進制<BR>方法:"按權展開求和" 例: (1011.01)2 =(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10 =(8+0+2+1+0+0.25)10 =(11.25)10 (2)十進制轉二進制 · 十進制整數轉二進制數:"除以2取余,逆序輸出" 例: (89)10=(1011001)2 2 89 2 44 …… 1 2 22 …… 0 2 11 …… 0 2 5 …… 1 2 2 …… 1 2 1 …… 0 0 …… 1 · 十進制小數轉二進制數:"乘以2取整,順序輸出" 例: (0.625)10= (0.101)2 0.625 X 2 1.25 X 2 0.5 X 2 1.0 2.八進制與二進制的轉換 例:將八進制的37.416轉換成二進制數: 37 . 4 1 6 011 111 .100 001 110 即:(37.416)8 =(11111.10000111)2 例:將二進制的10110.0011 轉換成八進制: 0 1 0 1 1 0 . 0 0 1 1 0 0 2 6 . 1 4 即:(10110.011)2 =(26.14)8 3.十六進制與二進制的轉換<BR>例:將十六進制數5DF.9 轉換成二進制: 5 D F . 9 0101 1101 1111.1001 即:(5DF.9)16 =(10111011111.1001)2 例:將二進制數1100001.111 轉換成十六進制: 0110 0001 . 1110 6 1 . E 即:(1100001.111)2 =(61.E)16
⑺ C語言中整型常量有幾種形式,它們是如何表示的
在C語言中,整型常量有三種書寫形式:
(1) 十進制整數。十進制整數就是通常整數的寫法。例如:11、15、21等。
(2) 八進制整數。八進制整數的書寫形式是在通常八進制整數的前面加一個數字0。例如:00、0111、015、021等,它們分別表示十進制整數:0、73、13、17
(3) 十六進制整數。十六進制整數的書寫形式是在通常十六進制整數的前面加0x。例如:0x0、0x111、0x15、0x21等,它們分別表示十進制整數0、273、21、33。
注意,整型常量前面沒有+或者-,-10其實是一元-運算符和操作數10,同樣整型常量的十進製表示並沒有0,單獨寫一個0其實是一個八進制常量。
(7)c語言中83的值為多少擴展閱讀
轉換為整型
要明示地將一個值轉換為 integer,用 (int) 或 (integer)強制轉換。不過大多數情況下都不需要強制轉換,因為當運算符,函數或流程式控制制需要一個 integer 參數時,值會自動轉換。您還可以通過函數 intval() 來將一個值轉換成整型。
1、從布爾值轉換
FALSE 將產生出0(零),TRUE 將產生出1(壹)。
2、從浮點數轉換
當從浮點數轉換成整數時,數字將被取整(丟棄小數位)。
注意:如果浮點數超出了整數范圍(通常為 +/- 2.15e+9 = 2^31),則結果不確定,因為沒有足夠的精度使浮點數給出一個確切的整數結果。在此情況下沒有警告,甚至沒有任何通知!
註:在 Linux 下返回結果是最小負數(-214748),而在 Windows 下返回結果是零(0)。
【以下以C/C++語言為例,陳述一下整型的知識】:
a、C/C++對整型長度的規定是為了執行效率,將int定義為機器字長可以取得最大的執行速度;
b、C/C++中整型包括:int,char和enum,C++中還包含bool類型,C99中bool是一個宏,實際為_Bool;
c、C和C++對enum的規定有所不同,這里不描述;
d、修飾整型正負的有signed和unsigned,對於int默認為signed;
e、修飾 int 大小的有short和long,部分編譯器還擴展了一些更長的整型,比如long long和__int64, C99中增加了long long和unsigned long long;
f、int 的長度與機器字長相同,16位的編譯器上int長16位,32位的編譯器上int長32位;
g、short int的長度小於等於int 的長度,注意它們可能長度相等,這取決於編譯器;
h、long int 的長度大於等於int 的長度,注意它們可能長度相等,這取決於編譯器;
i、char 的長度應當可以包容得下一個字元,大部分系統中就是一個位元組,而有的系統中可能是4個位元組,因為這些系統中一個字元需要四個位元組來描述;
j、char 的正負取決於編譯器,而編譯器的決定取決於操作系統,在不同的編譯器中char可能等同於signed char,也可能等同於unsigned char。
參考資料來源:網路-整型
參考資料來源:網路-整型常量
⑻ C語言中整型常量有幾種形式它們是如何表示的
在C語言中,整型常量分為十進制整型常量、八進制整型常量和十六進制整型常量三種表示形式。
1、十進制整型常量
此種格式的整型常量只能出現 0~9 的數字,且可帶正、負號。比如:
0 1 364 28 -34
2、八進制整型常量
此種格式的整型常量以數字0開頭的八進制數字串。其中數字為 0~7。例如:
0111十進制 73、 011十進制 9、 0123十進制 83、
3、十六進制整型常量
此種格式的整型常量以0x或0X(x是大寫)開頭的十六進制數字串。其中每個數字可以是 0~9、a~f或 A~
F 中的數字或英文字母。例如:
0x11十進制 17、 0Xa5十進制 165、 0x5a十進制 90、
⑼ 8/3在c語言中值是多少
答案:2。在C語言中,除號兩邊都是整型時,是整除,即捨去小數點後面的數據,且不做四捨五入。 如果寫成:8.0/3 或 8/3.0 或 8.0/3.0, 其結果都為 2.666667。
⑽ c語言數值常量表示方法問題
C語言中的數值常量可以簡單的分為如下兩種整型常量和浮點數常量:
一. 整型常量 如6,27,-299
在 C 語言中,整型常量分為十進制整型常量、八進制整型常量和十六進制整型常量三種表示形式。
(1)十進制整型常量
這種常量只能出現 0~9 的數字,且可帶正、負號。例如:
0 1 364 28 -34
第 2 章 基本數據類型 •29•
(2)八進制整型常量
這種常量是以數字 0 開頭的八進制數字串。其中數字為 0~7。例如:
0111(十進制 73) 011(十進制 9) 0123(十進制 83)
(3)十六進制整型常量
這種常量是以 0x或 0X開頭的十六進制數字串。其中每個數字可以是 0~9、a~f或 A~
F 中的數字或英文字母。例如:
0x11(十進制 17) 0Xa5(十進制 165) 0x5a(十進制 90)
二. 浮點型常量 如5.43,-2.3,5.67f
實型常量有兩種表示形式:一種是十進制小數形式,另一種是指數形式。
(1)十進制小數形式
十進制小數形式為包含一個小數點的十進制數字串。
此類實型常量小數點前或後可以沒有數字,但不能同時沒有數字。例如:
3.14159, .89, 56.0, 78., -3.0, 0.0
(2)指數形式
指數形式的格式由兩部分組成:十進制小數形式或十進制整型常量部分和指數部分。
其中指數部分是在 e 或 E(相當於數學中冪底數 10)後跟整數階碼(即可帶符號的整數指
數)。例如:
1e15 //表示數值 1×10
15
0.35e+1 //表示數值 0.35×10
1
78e-1 //表示數值 78×10
-1
下面是不正確的實型常量。
e15 //缺少十進制小數部分
0.35e //缺少階碼
78e-1.2 //不是整數階碼