永发信息网

有符号短整数和无符号短整数区别

答案:6  悬赏:80  手机版
解决时间 2021-03-18 18:48
  • 提问者网友:富士山上尢
  • 2021-03-18 10:59
我运行这个程序时,设j=40000,输出-25536 40000
设j=50000,输出-15536无规律他们的关系&区别是什么呢?
#include <iostream>
using namespace std;

int main()
{
short int i; // 有符号短整数
short unsigned int j; // 无符号短整数

j = 40000;

i = j;
cout << i << " " << j;
system("pause");
return 0;
}
最佳答案
  • 五星知识达人网友:北方的南先生
  • 2021-03-18 11:34
无符号短整数范围 0 到 65535
有符号短整数范围 -32768 到 32767
超过范围后 32767+1 输出为 -32768
所以50000输出为 -32768+50000-32768=-15536
全部回答
  • 1楼网友:逃夭
  • 2021-03-18 17:09
short int范围是-32768 ---32768,40000已经超出了,short unsigned int范围是 0-65536,j=40000时,i的值是40000-32768-32768=-25536
  • 2楼网友:长青诗
  • 2021-03-18 15:30
无符号整型是 unsigned int 表示数的范围是 0-65535 有符号整型 int 表示数的范围是 -32768到32767
  • 3楼网友:酒醒三更
  • 2021-03-18 13:58

也就是int short 和long的区别

只有1个区别,就是范围不同。

int    -32768~32767

short   -32768~32767  long   -2147483648~2147483647

用途要看你的要求了,要多大的数才合适。 符合范围之下,选择顺序是:short>int>long 主要是占内存的多少。 教材上说,三者内存分配满足以下:short<=int,int<=long,具体看环境了。

  • 4楼网友:蓝房子
  • 2021-03-18 13:12
short int是2个字节的 范围是 -2^(15)到 2^(15)-1 最大32767 40000>32767 发生了overflow溢出 short unsigned int同样2字节 但unsigned没有负数 范围是 0 到 2^(16)-1 最大65535 40000<65525 没有overflow 正常显示
  • 5楼网友:拜訪者
  • 2021-03-18 11:45
有无符号的整数,在计算机内存中是区别不出有无符号的,而是在程序里有区分。计算机中数据是以补码形式存放的,用二进制表示。比如:默认无符号型,只要在类型符号加 unsigned就是无符号型,Int是有符号的。其实说白了就是:定义带符号整数的,则可以存储正负整数,定义无符号整数的,则只可以存储正整数。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯