當前位置:編程學習大全網 - 編程軟體 - 為什麽65535的二進制為111....1111(16個1),111....1111(16個1)是-1的二進制?

為什麽65535的二進制為111....1111(16個1),111....1111(16個1)是-1的二進制?

2^16=65536,2^16-1=65535這沒有錯啊!111....1111(16個1)是-1的二進制也沒錯,但這是在int型為2字節的時候。當int型為2字節時,能表示的有符號數的範圍是-32768~32767,表示無符號數時範圍是0~65535。現在的int型已大都為4字節了,妳困惑的這個問題已轉移到更大的數上去了。其實計算機裏沒有什麽正數、負數,都是些0、1符號,代表什麽數看編程者怎麽對待了。就說這111....1111(16個1),在16位整型平臺下,編程者如果認為是無符號數,那就是65535,而如果編程者認為是有符號的,那就是-1了。所以不要困惑。

如果妳是學C的,用下面的語句來理解我上面的回答——

#include "stdio.h"

void main(void){

int a=0xFFFF;//這就是16個1

printf("%d %u\n",a,a);

}

  • 上一篇:Derby是什麽意思
  • 下一篇:《python編程初學者指南》書本中的涉及的源碼哪裏可以下載?
  • copyright 2024編程學習大全網