44问答网
所有问题
这是一个关于C语言的问题,赋值问题,如果unsigned int 是65535,那么int是多少
如题所述
举报该问题
推荐答案 2007-03-18
是-1
因为65535对应的二进制数是1111111111111111, 而这正是有符号数-1 的补码, 所以是-1
BTW: 一个负数的补码, 是它对应的正数的补码按位取反并在末位加1.
求-1的补码, 先看正1的补码
正1的二进制数是0000000000000001, 它的补码是
1111111111111110, 然后末位加1, 就变成了1111111111111111, 就是-1的补码.
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://44.wendadaohang.com/zd/GG6RGDYY.html
其他回答
第1个回答 2007-03-18
unsigned int 是无符号整数
int 是有符号整数
但有些编译器int也等于unsigned int
你可以用65535赋值于int变量实验下就清楚
第2个回答 2007-03-18
-32768 - +32767
相似回答
一道
C语言
题,当
unsigned
int为
65535
时
,int
为什么是-
1,
char为什么...
答:
假设你的编译器
int
占2个字节:65535在内存中是1111111111111111 无符号整数就
是65535,
有符号最高位是1表示负数,实际表示的数是符号位不变,其余取反再加1就是-1。char
是一个
字节,所以只有11111111 最高位符号位,1111111表示127就是x的ASCII码。
@
C语言
大神:
unsigned
int65535
转化为
int是多少
??转化为long int...
答:
从你的题目的意思来看,
应该是这样的:int是16位,lont int 是32位或以上。对于unsigned int的65535,转化为int 就是-1
,因为16位的int所能表示的数据范围为-32768~32767.用0x7FFF表示32767,0x8000表示-32768,0xFFFF(即65535)表示-1.对于32位的long int来说,0xFFFF即0x0000FFFF仍然是正数,表示...
有关
C语言的赋值问题
答:
unsigned
int
a=
65535
;无符号数65535 把内存空间占满了 也就是16个1(二进制)这时赋予一个有符号数 那么b也存16个1 这时 第一位就有意义了 是符号为 1为负数 0为正数 负数的补码求法是 变成二进制 添加符号位第一位为1 出符号为 安位取反得反码 加1 得补码 也就是说 [1111111111...
有一道
关于C语言的
题,希望大家可以帮助我理解一下
答:
因为定义a为无符号型整数,其
65535
的二进制表示为1111111111111111,即16个一。而在函数printf中使用%d,即表示以整数的类型输出,整数类型默认是有符号的,所以将16个位分为一个符号位,和十五个数据位。又因为编码系统默认符号位为1表示负数,而在计算机编码中,负数使用补码表示,所以1111111111111111被认为...
大家正在搜
innerhtml赋值问题
c语言怎么赋值
c语言什么情况不能连续赋值
c语言连等赋值的顺序
C语言赋值
c语言连等赋值
c语言连续赋值
c语言字符赋值
c语言二维数组赋值