liuxianhua
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 611 個
工控威望: 1067 點(diǎn)
下載積分: 10234 分
在線時間: 572(小時)
注冊時間: 2008-11-19
最后登錄: 2013-02-22
查看liuxianhua的 主題 / 回貼
樓主  發(fā)表于: 2010-04-15 12:44
書上說16位數(shù)據(jù)寄存器的最高為符號位,0為正數(shù)1為負(fù)數(shù),正數(shù)的最大值為32767,負(fù)數(shù)的最大值為-32768,這我就不明白了,除了符號位外,其他15位都為1時,加起來是32767,為什么負(fù)數(shù)能儲存最高數(shù)是-32768呢?懇請高手指點(diǎn),謝謝,謝謝!!
qlin
學(xué)過一點(diǎn)FX型PLC基本知識
級別: 家園常客
精華主題: 0
發(fā)帖數(shù)量: 537 個
工控威望: 531 點(diǎn)
下載積分: 12343 分
在線時間: 258(小時)
注冊時間: 2009-07-13
最后登錄: 2019-05-13
查看qlin的 主題 / 回貼
1樓  發(fā)表于: 2010-04-15 12:56
在《自學(xué)自會PLC指令——三菱FX2N編程技術(shù)及應(yīng)用》一書中有講解。
主要含意是:內(nèi)部數(shù)據(jù)的負(fù)數(shù),是用補(bǔ)碼表示的;好像是,H8000對應(yīng)-32768,記不太準(zhǔn)了。

具體的,可以做指令試驗(yàn),幫助理解。
僅很早前用過幾次順控編程(PLC),嘿嘿,沒尋找機(jī)會
zhaoyang4505
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點(diǎn)
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看zhaoyang4505的 主題 / 回貼
2樓  發(fā)表于: 2010-04-15 14:08
樓上正解。
正數(shù)的補(bǔ)碼與原碼相等;負(fù)數(shù)的補(bǔ)碼 = 反碼+1。
liuxianhua
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 611 個
工控威望: 1067 點(diǎn)
下載積分: 10234 分
在線時間: 572(小時)
注冊時間: 2008-11-19
最后登錄: 2013-02-22
查看liuxianhua的 主題 / 回貼
3樓  發(fā)表于: 2010-04-15 14:43
關(guān)于原碼、反碼、補(bǔ)碼以前也學(xué)過,現(xiàn)在都忘了,連書都找不到了,能不能請教下大蝦:+5的二進(jìn)制的原碼、反碼、補(bǔ)碼是多少?-5的原碼、反碼、補(bǔ)碼又是多少?謝謝,不勝感激!!
ljc2008
一學(xué)到老
級別: 家園常客
精華主題: 0
發(fā)帖數(shù)量: 406 個
工控威望: 562 點(diǎn)
下載積分: 499 分
在線時間: 172(小時)
注冊時間: 2008-10-04
最后登錄: 2024-03-04
查看ljc2008的 主題 / 回貼
4樓  發(fā)表于: 2010-04-15 15:35
原碼就是指用純二進(jìn)制編碼表示的二進(jìn)制數(shù),而補(bǔ)碼就是對原碼進(jìn)行按位求反,再加1后的二進(jìn)制數(shù)。
+5的二進(jìn)制的原碼是 0000 0000 0000 0101
                        反碼是 1111  1111 1111 1010
                        補(bǔ)碼是 1111 1111 1111  1011
純二進(jìn)制編碼只能表示正整數(shù),而正、負(fù)數(shù)僅是利用原碼,補(bǔ)碼來表示的二進(jìn)制編碼,因此,負(fù)數(shù)不存在什么原碼,來表示    -5的補(bǔ)碼表示 1111 1111 1111 1011
本帖最近評分記錄:
  • 下載積分:+2(wu32u2) 熱心助人
    liuxianhua
    級別: 論壇先鋒
    精華主題: 0
    發(fā)帖數(shù)量: 611 個
    工控威望: 1067 點(diǎn)
    下載積分: 10234 分
    在線時間: 572(小時)
    注冊時間: 2008-11-19
    最后登錄: 2013-02-22
    查看liuxianhua的 主題 / 回貼
    5樓  發(fā)表于: 2010-04-16 10:14
    謝謝樓上的各位大蝦,總算明白一些了,就是搞不懂補(bǔ)碼為什么會比原碼多表示一位?
    25188400
    學(xué)習(xí)。狞c(diǎn)滴做起。。
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 239 個
    工控威望: 367 點(diǎn)
    下載積分: 1764 分
    在線時間: 259(小時)
    注冊時間: 2007-03-28
    最后登錄: 2022-07-24
    查看25188400的 主題 / 回貼
    6樓  發(fā)表于: 2010-04-16 12:53
    都是高手呀。~學(xué)習(xí)學(xué)習(xí)~~
    業(yè)績電氣
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 189 個
    工控威望: 377 點(diǎn)
    下載積分: 1061 分
    在線時間: 117(小時)
    注冊時間: 2009-01-02
    最后登錄: 2023-11-08
    查看業(yè)績電氣的 主題 / 回貼
    7樓  發(fā)表于: 2010-04-17 21:34
    向你們大俠學(xué)習(xí),
    sjm213
    有小知識,無大學(xué)問。
    級別: 論壇版主

    精華主題: 7 篇
    發(fā)帖數(shù)量: 5212 個
    工控威望: 7436 點(diǎn)
    下載積分: 158993 分
    在線時間: 3172(小時)
    注冊時間: 2007-11-21
    最后登錄: 2024-12-22
    查看sjm213的 主題 / 回貼
    8樓  發(fā)表于: 2010-04-17 23:06
    正數(shù)原碼與反碼、補(bǔ)碼一致;
    負(fù)數(shù)反碼是將其原碼除符號位之外的各位求反,補(bǔ)碼是將反碼加1。
    所以4樓的解釋是有問題的。
    -5的二進(jìn)制的原碼是 1000 0000 0000 0101
                            反碼是 1111  1111 1111 1010
                            補(bǔ)碼是 1111 1111 1111  1011
    ----------------------------------------------------------------------------------------------
    以下轉(zhuǎn)載,解釋有符號的數(shù)范圍為何是-(n+1)~n:
    為什么要設(shè)立補(bǔ)碼呢?

    第一是為了能讓計(jì)算機(jī)執(zhí)行減法:
    [a-b]補(bǔ)=a補(bǔ)+(-b)補(bǔ)

    第二個原因是為了統(tǒng)一正0和負(fù)0
    正零:00000000
    負(fù)零:10000000
    這兩個數(shù)其實(shí)都是0,但他們的原碼卻有不同的表示。
    但是他們的補(bǔ)碼是一樣的,都是00000000
    特別注意,如果+1之后有進(jìn)位的,要一直往前進(jìn)位,包括符號位!(這和反碼是不同的。
    [10000000]補(bǔ)
    =[10000000]反+1
    =11111111+1
    =(1)00000000
    =00000000(最高位溢出了,符號位變成了0)

    有人會問
    10000000這個補(bǔ)碼表示的哪個數(shù)的補(bǔ)碼呢?
    其實(shí)這是一個規(guī)定,這個數(shù)表示的是-128
    所以n位補(bǔ)碼能表示的范圍是
    -2^(n-1)到2^(n-1)-1
    比n位原碼能表示的數(shù)多一個
    本帖最近評分記錄:
  • 下載積分:+4(njaolian) 解釋太詳細(xì)了,不給對不 ..
    蘇目
    級別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 12 個
    工控威望: 104 點(diǎn)
    下載積分: 584 分
    在線時間: 15(小時)
    注冊時間: 2010-04-08
    最后登錄: 2020-08-15
    查看蘇目的 主題 / 回貼
    9樓  發(fā)表于: 2010-04-18 14:39
    最高位為是1,其余十五位為0時,即為32768,因?yàn)椴淮嬖谪?fù)0.
    一笑而過
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 265 個
    工控威望: 488 點(diǎn)
    下載積分: 9494 分
    在線時間: 212(小時)
    注冊時間: 2010-01-30
    最后登錄: 2013-02-03
    查看一笑而過的 主題 / 回貼
    10樓  發(fā)表于: 2010-04-19 12:00
    原來是規(guī)定,似乎明白了,謝謝斑竹!
    pretco123
    不為失敗找理由,只為成功找方法
    級別: 論壇先鋒

    精華主題: 0
    發(fā)帖數(shù)量: 2481 個
    工控威望: 1776 點(diǎn)
    下載積分: 83532 分
    在線時間: 1525(小時)
    注冊時間: 2008-04-15
    最后登錄: 2024-12-23
    查看pretco123的 主題 / 回貼
    11樓  發(fā)表于: 2010-04-19 12:44
    略懂點(diǎn)了!那么表示一個負(fù)數(shù)等于兩部分,要用反碼和補(bǔ)碼來表示。數(shù)字范圍是-32767~32767中。。。正數(shù)加1也是正數(shù),負(fù)數(shù)減1就等于加上一個(-1)表示負(fù)數(shù)必需是將表示符號的最高位置1。
    例:00000000-1
          =00000000+(-1)
       =11111111
          =10000001
    請問各位高手是不是這樣的?請指教!怎么搞到自己好象有點(diǎn)亂了!