我运行这个程序时,设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;
}
有符号短整数和无符号短整数区别
答案:6 悬赏:80 手机版
解决时间 2021-03-18 18:48
- 提问者网友:富士山上尢
- 2021-03-18 10:59
最佳答案
- 五星知识达人网友:北方的南先生
- 2021-03-18 11:34
无符号短整数范围 0 到 65535
有符号短整数范围 -32768 到 32767
超过范围后 32767+1 输出为 -32768
所以50000输出为 -32768+50000-32768=-15536
有符号短整数范围 -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是有符号的。其实说白了就是:定义带符号整数的,则可以存储正负整数,定义无符号整数的,则只可以存储正整数。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯