00问答网
所有问题
-1用int类型和unsigned int 类型表示的结果分别是多少,说明为什么?
如题所述
举报该问题
推荐答案 2020-11-23
int
补码
-1:ffffh(
十六进制
),unsigned int 表示为2的33次方减一好像是65535,因为int展开后第一个二进制位表示为符号位,而unsigned int 没有符号位,全部都是数值位,计算机存储时按补码存储,但读取时方式不同表示的数也不一样。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/DjDTDZrDenZDn0DT0BB.html
其他回答
第1个回答 2020-11-23
int为-1, unsigned int 为 4,294,967,295 (假定4字节)
无论有符号还是无符号,都是将-1的二进制赋值给了这两个变量,而-1 的二进制是32个1
这个值在有符号看来就是-1, 而在无符号看来就是4,294,967,295
所以,这两个值在存储上是一样的,只是在使用时,最高位可以被当成符号位使用
第2个回答 2020-11-23
这个可以问一下专业人士
相似回答
...
int
b=-
1
; a=b; printf("%u\n",a); } 得出
的结果为什么
是65526啊...
答:
-1在计算机里是按补码存储的,最高位为1,是符号位,当把int数值转换为
unsigned
时,最高位就不再是符号位了,而是数值了 假设
int的
存储是2字节 b的原码 10000000 00000001 b的补码 11111111 11111111 把b转换为unsigned后 a=11111111 11111111=2^(16)-1=65535 ...
main() {
unsigned
x1;
int
b= -
1
; x1=b; printf(“%u”,x1); } 为...
答:
include <stdio.h>
int
main() {
unsigned
x1;int b= -1; x1=b; //C语言基本都是直接转换的printf("%u",x1);return 0; } 首先,不同的CPU平台,计算
的结果
肯定不同的,你说的65535 应该是16位的。这个问题的关键是理解 -1的机器码
表示
。 我们都知道有符号数或者说负整数在计算机中是二...
C++中一个
无符号类型的
额数据
与一
个有符号数据相加
的结果是,
麻烦举例说 ...
答:
int
i = -1;
unsigned
int j = 14;int k = i + j;printf("%d", k);程序编译时会有warning,相加时会先把unsigned int转换成int。=== 以上描述不准确,谢谢wyyat_chcheng指正。对于机器来讲,它不分有符号
还是无符号,
它只是二进制相加,如果最高位进位就溢出。然后根据目标赋值变量来隐式转...
把-1赋给
unsigned
char,输出的会是255
?为什么
我编的时候输出
的是1?
答:
“警告:大整数隐式截断为
无符号类型
”就是说:多字节‘-1’的第一个字节‘-’被忽略了,剩下字符‘1’,所以是输出1。你可以把‘-1’换成‘-4’看一下
结果
。如果还有问题,你可以追问。那么
为什么
输出255呢?我估计你看到的程序本来应该是
int
main(){
unsigned
char a = -1;cout << (...
大家正在搜
unsigned是什么数据类型
c语言unsigned是什么类型
int和unsigned的区别
unsigned int多少位
设有类型说明unsigned
int转unsigned int
unsigned int i
什么是unsigned
变量数据类型为unsigned
相关问题
unsigned int x = 0; 请问 x - 1 的...
请问unsigned a: 1;是什么意思呢?此处的unsi...
C语言里 unsigned a=0 a-1值为多少?为什么?
c语言中int和unsigned优先级匹配 int类型数字与...
int,signed int和unsigned int 以及...
.设有类型说明 unsigned int a=65535; ...
C++里把-1赋给unsigned int 为什么输出结果是...
unsigned int 和 uint 的详细用法??