C語言,輸出補語,如何找到C語言的補語?

發布 科技 2024-02-22
17個回答
  1. 匿名使用者2024-01-25

    在計算機中,沒有原始或反向程式碼。

    輸入的值,無論是正值還是負值,都會被編譯並儲存為補碼。

    編寫乙個 C 程式來顯示數值的二進位,如下所示。

  2. 匿名使用者2024-01-24

    0000 的二進位 7

    0111,是按位反,結果是 1111

    注意,最高位數是1,表示這是乙個負數,負數是計算機中的補碼,補碼是十進位,補碼負號保持不變,其他的都倒過來,最後加1,這就是原碼。 即 1000

    1000 是 -8 由公式 n

    結果,它是。 (n+1)

  3. 匿名使用者2024-01-23

    正數取自原始程式碼,負數對應正數,然後逐位加,如19,原碼用8位二進位00010011,然後00010011其補碼和反碼。

    對於-19,因為19的8位原碼是00010011的,所以每個位的反11101100,然後加上1,1110110101,這樣-19的原始碼10010011,反碼11101100,補碼11101101

  4. 匿名使用者2024-01-22

    正的與原始程式碼相同。

    否定的必須首先將原始程式碼轉換為反向程式碼(不要告訴我您甚至不能反轉程式碼)。

    將 1 新增到反向程式碼的基數中,您就可以開始了。

  5. 匿名使用者2024-01-21

    正數與素數、逆數和補數相同。

    負數的原碼、逆碼和補碼是不同的。

    讓我們以兩個位元組(16 位)為例(短型別)來理解這一點:

    1) 原始 = 1000 0000 0000 0001 最高位為符號位 1 負,0 正,資料總長度為 16 位

    1) 反 = 1111 1111 1111 1110 除符號位外,原始程式碼是逐位反轉的。

    1) 補碼 = 1111 1111 1111 1111 反碼 +1

    由此,我們來看一下 -12345 的補碼:

    12345) 原件 = 1011 0000 0011 1001

    12345) 反 = 1100 1111 1100 0110

    12345) 補碼 = 1100 1111 1100 0111

    我覺得你誤會錯了,因為你不了解資料按位元組的儲存,計算機中資料的最小儲存單元是位元組,乙個位元組占用8位,一般(32位機器)資料儲存空間的大小定義為:

    char 1byte

    short 2bytes

    int 4bytes

    long 4bytes

    float 4bytes

    double 8bytes

    在 C 程式中,可以使用 sizeof 命令來檢查某種型別的空間的大小,例如 printf("%d", sizeof(long) ) 可以編寫自己的程式來測試您的機器。

  6. 匿名使用者2024-01-20

    C 語言,可以使用 int 型別。

    整數是 16 位二進位數,模數為 65536。

    那麼,12345 的補碼是:65536 12345 | = 53191。

    寫成 16 位二進位數,它是:1100 1111 1100 0111。

  7. 匿名使用者2024-01-19

    在 C 中,所有整數資料實際上都儲存為補碼。

    要計算補碼,首先要知道原始程式碼的概念,它是十進位數的二進位表示式,例如,100 的原始程式碼是 1100100。

    補碼的計算原理如下:

    1 對於無符號數和有符號數中的正數,補碼為原始程式碼本身;

    2 對於有符號數中的負數,補碼是真值加一的絕對值的倒數,其中反碼為原始碼,位反轉。

    負數示例:

    當 100 用 char(8 位)表示時,可以按照以下過程計算其補碼:

    1.原始程式碼為100 01100100

    2.按位取反轉碼,得到反轉碼為10011011

    3.在逆碼中加1,即10011011+1=10011100。

    所以 -100 的補碼表示是 10011100,即 0x9c(十六進製)。

  8. 匿名使用者2024-01-18

    首先,建議房東去補上“原守則”、“反守則”和“補碼”的相關知識。

    我將首先分解它(假設您已經知道這一點):

    首先,讓我們從無符號的角度來看問題中的資料:

    n = 0x7fff

    m = 0x8000

    可以看出,對於 n,他的二進位模式是:0111 1111 1111 1111

    對於 m,他的二進位模式是:1000 0000 0000 0000

    如您所見,最高符號位 n 為 0,m 為 1

    所以如果我們從有符號數的角度來看 m 和 n 的二進位資料,我們知道 n 符號位(最高位)是零,所以 n 是正數,m 符號位是 1,所以它是乙個負數。

    對於補碼,正數很容易計算,即他的值,即 0111 1111 1111 1111 = 0x7fff = 32767

    對於負數 m,我們可以這樣做以了解它的值:

    假設 m |m|= x,那麼我們得到 m 的 x

    m = 1000 0000 0000 0000

    否定:m = 0111 1111 1111 1111

    加 1 m + 1 = 1000 0000 0000 0000

    這個問題中的資料比較特殊,所以你可以看到 m 和 m+1 的結果看起來是一樣的,其實你可以列出其他值來計算,一般兩種按位模式是不同的)。

    x = 32768

    然後我們可以看到 m = -x = -32768 或更多。

  9. 匿名使用者2024-01-17

    在 C 語言中,不需要補語。

    補碼是組合語言中的有符號數字。

    C語言是一種高階語言,可以和人類語言一樣寫,直接使用加號和減號,不需要使用補語。

  10. 匿名使用者2024-01-16

    正補碼 = 其二進位。

    例如,5 的補碼 = 原始程式碼:101;

    即 0000,0000,0000,1001

    負補碼 = 負數絕對值的二進位,然後倒數 +1;如-5:

  11. 匿名使用者2024-01-15

    正數的補碼是它原來的碼本身,負數的補碼是它的絕對值的原碼,反轉1位

  12. 匿名使用者2024-01-14

    正數和 0 的補碼總是它自己,負數的補碼是它的絕對值按位反轉,加上 1。

    0] 補碼 = 00000000b

    1] 補碼 = 00000001b

    2] 補碼 = 00000010b

    3] 補碼=00000011b

    0] 補碼 = 00000000b

    1] 補碼 = 11111111b(注意:-1 的絕對值為 1,數字反轉為 11111110b,加 1 得到 -1 的補碼:11111111b)。

    2] 補碼 = 11111110b

    3] 補碼 = 111111101b

  13. 匿名使用者2024-01-13

    你可以在任何 C 語言書籍中看到細節,我有多清楚並不重要。

    我會告訴你我的理解。 把所有的數字都想象成時鐘上的數字。

    00000000---00000001--00000002.。。一直到 ffffffff

    ffffffffff 為 -1

    我說的是 32 位有符號數字 int 使用這個時鐘概念來理解補碼,我保證你永遠不會忘記它。

    否則,只要記住補碼=反碼+1反碼=原碼和ffffffff取差額,這樣你遲早要在面試中被蒙蔽。

    希望對你有所幫助。

  14. 匿名使用者2024-01-12

    正數是反碼,負數是反碼+1

  15. 匿名使用者2024-01-11

    如果是正數,補碼=原始碼,如果是負數,x = x + 1 + 0xffffffff,然後找到 x 的原始碼。

    scanf("%d", &x);

    x = (x + 1 + 0xffffffff) %0xffffffff;

    todo...然後只需找到 x 的原始程式碼即可。

    此0xffffffff是 int 可以表示的最大值,如果 int 為 4 個位元組,則通常為 4 個位元組。

  16. 匿名使用者2024-01-10

    這就是問題所問的嗎? 或者您是否要求輸出十進位數的記憶體表示?

  17. 匿名使用者2024-01-09

    “當您輸入它時,計算機將其作為補充,然後輸出原始程式碼”是不正確的。

    計算機以補碼的形式儲存整數資料。 與補體 1解決了 +0、-0、2 的問題所有操作都可以通過新增劑完成。

    當我們輸入資料時,我們都是人們在現實生活中可以理解的數字:例如,十進位數,當計算機儲存它們時,它們會自動將它們轉換為補碼進行儲存和計算。 輸出時,會根據人的要求自動轉換為相應的可識別資料進行展示。

    在超過 32 位的機器上,短路占用兩個位元組,這是乙個有符號的數字,可以表示以下資料範圍:-32768 32767。 你輸入 65535,然後你超出了它的表示範圍,計算機儲存了 16 個 1,對於短型別,16 個 1 表示 -1,所以你的輸出是 -1

相關回答
3個回答2024-02-22

你這個是16,我可以用8位跟你解釋一下(原理是一樣的,我打起來更方便)。 >>>More

8個回答2024-02-22

呵呵,這個哥哥和我幾個月前的樣子很像。 在學習 C 之前,我認為 C 應該能夠實現任何事情。 但是在學習之後,我發現我離Windows還很遠。 >>>More

14個回答2024-02-22

在 VisualStudio 2013 中編寫和除錯 C 語言程式的步驟: 1.開啟 [檔案] - 新建 - 專案以開啟“新建專案”視窗。2. 在[模板]、[名稱]、[位置]和[解決方案名稱]中選擇[Visual C++] Win32控制台應用程式,可以根據需要填寫。 >>>More

6個回答2024-02-22

y 年 m 月 d 日,是日日嗎?

計算:天 = mon[1] +mon[2] +mon[m-1] +d; >>>More

7個回答2024-02-22

C 是一種程式語言。

簡單來說,程式設計就是用程式語言編寫程式的過程,以達到一定的目的或借助計算機解決問題,最終得到結果。 >>>More