1樓:倒黴熊
負數可以有十六進位制啊
在計算機中,帶有符號的整數都是以補碼形式儲存的。
-21 假設一個位元組
21的原始碼是 0001 0101
最高位是符號位 0表示正 1表示負 所以 -21的二進位制為 1001 0101
轉換成反碼:1110 1010
轉換成補碼:1110 1011
轉換成十六進位制:eb
所以-21的十六進位制為 eb
2樓:匿名使用者
-21不是十六進位制數,十六進位制數表示為0x開頭。
但- 0x21可以,因為-也是單目運算子。
3樓:匿名使用者
可以啊,負數是用補碼錶示的。
16位的是0xffeb
32位的是0xffffffeb
21的二進位制表示:
10101
-21的二進位制表示=21補
補碼演算法,以16位為例
對齊(左側補0,4位一個段):
0000 0000 0001 0101
變換成補碼,所有位取反,然後加1:
1111 1111 1110 1010(反)+1=1111 1111 1110 1011(補)
變換為16進位制,每4位二進位制對應一個16進位制:
1111 1111 1110 1011
___f ___f ___e ___b =>ffeb以上轉換編譯器自動的處理的。
負數的十六進位制如何表示。
4樓:匿名使用者
負數用十六進位制表示,通常用的是補碼的方式表示.
十六進位制(英文名稱:hexadecimal),是計算機中資料的一種表示方法。同我們日常生活中的表示法不一樣。
它由0-9,a-f組成,字母不區分大小寫。與10進位制的對應關係是:0-9對應0-9;a-f對應10-15;n進位制的數可以用0~(n-1)的數表示,超過9的用字母a-f。
正數的補是它本身;負數的補碼是它本身的值每位求反,最後再加一。
例如:求-3的十六進位制
3的十六進位制為0003,3求反之後是c,再加1,成d,所以-3的十六進位制就是:fffd
5樓:杞鬆桖
負數用十六進位制表示,首先應該將其表示成二進位制形式,然後變反碼,再變補碼。
2 ——> 原碼 0000 0010 ——> 反碼 1111 1101 (原碼按位反轉) ——> 補碼 1111 1110(反碼+1)
補碼變為十六進位制表示是 0xfe
二進位制數,取最後8位十六進位制數就可以了。
6樓:
開啟電腦,點選開始,選擇執行,輸入calc,開啟計算器程式,選擇十進位制,輸入0-28654,得到-28654,再選擇十六進位制,根據你需要的位數,一個十六進位制數位對應4個二進位制位,如果你是32位的二進位制數,取最後8位十六進位制數就可以了。
7樓:匿名使用者
最高位為符號位
0 代表正數
1 代表負數
如:81h 為-1
0ah 為10
c語言中的十六進位制可以為負的嗎?
8樓:匿名使用者
1、可以為負數。十六進位制表示負數通常用的是補碼的方式表示.正數的補是它本身.
負數的補碼是它本身的值每位求反,最後再加一.
2、例如:-3,3的十六進位制為0003,-3的十六進位制就是fffd(3求反之後是c,再加1,成d)。
9樓:匿名使用者
任何進位制都可以;
不同進位制只是寫程式時寫法不同而已,編譯後在記憶體中都有同樣的表示。因此任何進位制都和10進位制一樣可以表示正負;
例如-1 == -(1)== -(0x1) == -0x1
10樓:匿名使用者
不可以,因為計算機流通的是二進位制,我們只是因為二進位制不易閱讀,所以才用八進位制和十六進位制表示。而計算機中沒有符號的概念,全是用o和1表示,所以你在十六進位制的時候是看不見的,如果是有符號數,最高位是1表示是負數,0表示正數。
11樓:匿名使用者
#include
int main()
十進位制的負數-3,用十六進位制輸出是什麼?演算法是怎樣?
12樓:田秀梅遇申
5mod
3=25
mod-3=2
-5mod
-3=-2
-5mod
3=-2
看出規律沒
前面是正的值為正,前面為負後面值為負,其它與正數之間求餘一樣。
13樓:
-3的二進位制碼為(假設是16位的)1111 1111 1111 1101
按照四位二進位制碼轉化為一位16進位制碼的原則,-3轉換成十六進位制為fffd
在32位計算機上int佔4個位元組,因此轉換為16進位制位fffffffd
十六進位制整數有負數嗎,比如說-ox25
14樓:匿名使用者
十六進位制整數有無負數是依據在程式語言中定義的變數型別而決定。
在計算機中,負數以其正值的補碼形式表達。
什麼叫補碼呢?這得從原碼,反碼說起。
原碼:一個整數,按照絕對值大小轉換成的二進位制數,稱為原碼。
比如 00000000 00000000 00000000 00000101 是 5的 原碼。
反碼:將二進位制數按位取反,所得的新二進位制數稱為原二進位制數的反碼。
取反操作指:原為1,得0;原為0,得1。(1變0; 0變1)
比如:將00000000 00000000 00000000 00000101每一位取反,得11111111 11111111 11111111 11111010。
稱:11111111 11111111 11111111 11111010 是 00000000 00000000 00000000 00000101 的反碼。
反碼是相互的,所以也可稱:
11111111 11111111 11111111 11111010 和 00000000 00000000 00000000 00000101 互為反碼。
補碼:反碼加1稱為補碼。
也就是說,要得到一個數的補碼,先得到反碼,然後將反碼加上1,所得數稱為補碼。
比如:00000000 00000000 00000000 00000101 的反碼是:11111111 11111111 11111111 11111010。
那麼,補碼為:
11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011
所以,-5 在計算機中表達為:11111111 11111111 11111111 11111011。轉換為十六進位制:0xfffffffb。
再舉一例,我們來看整數-1在計算機中如何表示。
假設這也是一個int型別,那麼:
1、先取1的原碼:00000000 00000000 00000000 00000001
2、得反碼: 11111111 11111111 11111111 11111110
3、得補碼: 11111111 11111111 11111111 11111111
可見,-1在計算機裡用二進位制表達就是全1。16進製為:0xffffff
c語言中怎麼輸出一個負16進位制的數
15樓:千鋒教育
負數來用十六進位制表示,通常源用的是補碼的方式表示。
int a=-3;
在c語言中可以這麼輸出:printf("%hhx\n", a);
十六進位制(英文名稱:hexadecimal),是計算機中資料的一種表示方法。同我們日常生活中的表示法不一樣。
它由0-9,a-f組成,字母不區分大小寫。與10進位制的對應關係是:0-9對應0-9;a-f對應10-15;n進位制的數可以用0~(n-1)的數表示,超過9的用字母a-f。
正數的補是它本身;負數的補碼是它本身的值每位求反,最後再加一。
例如:求-3的十六進位制
3的十六進位制為0003,3求反之後是c,再加1,成d,所以-3的十六進位制就是:fffd
16樓:匿名使用者
#include "stdio.h"
void main()
不知襲道這樣你
bai認為如du
何?zhi?dao
????
17樓:匿名使用者
#include
void main()
已編譯,可以
18樓:滄海雄風
負數用十六
抄進製表示,通常用襲的是補碼的bai
方式表示。
duint a=-3;
在c語言中可zhi
以這麼輸出:printf("%hhx\n", a);
十六進dao制(英文名稱:hexadecimal),是計算機中資料的一種表示方法。同我們日常生活中的表示法不一樣。
它由0-9,a-f組成,字母不區分大小寫。與10進位制的對應關係是:0-9對應0-9;a-f對應10-15;n進位制的數可以用0~(n-1)的數表示,超過9的用字母a-f。
正數的補是它本身;負數的補碼是它本身的值每位求反,最後再加一。
例如:求-3的十六進位制
3的十六進位制為0003,3求反之後是c,再加1,成d,所以-3的十六進位制就是:fffd
十六進位制整數有負數嗎?
19樓:匿名使用者
十六進位制整數有無負數是依據在程式語言中定義的變數型別而決定。
在計算機中,負數以其正值的補碼形式表達。
什麼叫補碼呢?這得從原碼,反碼說起。
原碼:一個整數,按照絕對值大小轉換成的二進位制數,稱為原碼。
比如 00000000 00000000 00000000 00000101 是 5的 原碼。
反碼:將二進位制數按位取反,所得的新二進位制數稱為原二進位制數的反碼。
取反操作指:原為1,得0;原為0,得1。(1變0; 0變1)
比如:將00000000 00000000 00000000 00000101每一位取反,得11111111 11111111 11111111 11111010。
稱:11111111 11111111 11111111 11111010 是 00000000 00000000 00000000 00000101 的反碼。
反碼是相互的,所以也可稱:
11111111 11111111 11111111 11111010 和 00000000 00000000 00000000 00000101 互為反碼。
補碼:反碼加1稱為補碼。
也就是說,要得到一個數的補碼,先得到反碼,然後將反碼加上1,所得數稱為補碼。
比如:00000000 00000000 00000000 00000101 的反碼是:11111111 11111111 11111111 11111010。
那麼,補碼為:
11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011
所以,-5 在計算機中表達為:11111111 11111111 11111111 11111011。轉換為十六進位制:0xfffffffb。
再舉一例,我們來看整數-1在計算機中如何表示。
假設這也是一個int型別,那麼:
1、先取1的原碼:00000000 00000000 00000000 00000001
2、得反碼: 11111111 11111111 11111111 11111110
3、得補碼: 11111111 11111111 11111111 11111111
可見,-1在計算機裡用二進位制表達就是全1。16進製為:0xffffff
十六進位制的乘法和除法怎麼計算,十六進位制中 乘法和除法的計算
1 1 1 2 1 2 2 2 4 3 1 3 3 2 6 3 3 9 4 1 4 4 2 8 4 3 c 4 4 10 5 1 5 5 2 a 5 3 f 5 4 14 5 5 19 6 1 6 6 2 c 6 3 12 6 4 18 6 5 1e 6 6 24 7 1 7 7 2 e 7 3 1...
二十六進位制用於什麼,十六進位制可以幹什麼用?
計算機中的一切計算都是用二進位制進行的。平時我們用的十進位制是逢十進一,二進位制則是逢二進一。我們用的算盤事實上有兩種用法,一種是十進位制,一種是十六進位制。算盤中代表 五 的珠有兩個,最上面的那個就是用於進行十六進位制運算的。為什麼電腦中非要採用二進位制呢?主要原因是做一個二進位制的電路比較簡單。...
十六進位制數前為什麼加,十六進位制數前為什麼加Ox
在c語言程式設計裡 是用0x字首表示十六進位制數的,這樣計算機在編譯時能夠認識。這是編譯器規定的。正常的時候寫是加h 0f3h 0e2h 32h 加了0x編譯器才知道它是十六進位制數 為什麼十六進位制數前面要加0x 5 0x的目的是為了表示後面的數是十六進位制,在程式設計裡面一般都要加入,用來區別十...