社区
C语言
帖子详情
unsigned int x=65535,按%d的形式输出得到-1,这个是怎么转化的?谢谢!
infooffice
2003-11-22 12:17:18
谢谢!
...全文
1683
6
打赏
收藏
unsigned int x=65535,按%d的形式输出得到-1,这个是怎么转化的?谢谢!
谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
晨星
2003-11-23
打赏
举报
回复
1
65565就是ffff,不是-1是什么?
任何一种字长的整数类型中,全1的、带符号的肯定-1。
至于为什么,可以查一查补码的定义啊。
yizhili
2003-11-22
打赏
举报
回复
1
这是机器内码的关系。计算机一般用原码表示正数,补码表示负数。所谓补码就是反码+1。
(为方便以下用16进制表示而不用2进制)
比如signed short型的-1,16进制下1的反码为fffe,补码就是ffff,也就是说计算机里-1是用ffff表示的
而在usigned short型中,ffff仍是原码,表示的是65535,于是就出现了你所说的情况。
infooffice
2003-11-22
打赏
举报
回复
1
我知道是应为益出了,我就是想知道内部是怎么处理成-1的
晨星
2003-11-22
打赏
举报
回复
1
你用的16位的编译器吧?
"%d"控制被输出变量按带符号整数输出,改为"%u"应该就可以了。
proware
2003-11-22
打赏
举报
回复
1
溢出了,定义为unsigned long
即可
gaowenjun233
2003-11-22
打赏
举报
回复
1
溢出了,定义为unsigned int
改一下就行,
unsigned
int
number = -1的
输出
例如有这样的定义:
unsigned
int
number = -1; 当你打印的时候,pr
int
f("%d",number)则 number是当成一个又符号的数来处理。
输出
-1 当你这样打印的时候,pr
int
f("%u",number)则number当成一个无符号的数来处理。
输出
65535
小结: -1 这个数在内存中存着,究竟是有符号的还是无符号的,取决于程序眼对他的操作。另外
C语言中signed
int
与
unsigned
int
还有
unsigned
char a=-1;signed char=-1;char a=-1;打印结果分析
然而对于if()逻辑语句中的a+b中的
int
类型便会转换为
unsigned
int
类型。(1)
unsigned
int
类型比
Int
类型容量大,因为对于32\64位机器最前面一位对于
Int
类型而言均是符号位,而对于
unsigned
int
类型最高位不是符号位是可以存数据的。pr
int
f打印的是%d,是整形,所以
unsigned
int
会转换成
Int
类型,故a+b的值打印出就是3+-6=-3。1、所以对于题中a和b的分析就是一样的,char只存8个bit位,截取的是最后8位补码为:1111 1111。
整数在计算机中是如何存储的?
整数在计算机中是如何存储的? 无符号整数按其二进制的
形式
直接存储 有符号整数按其补码的
形式
存储 以8位二进制数为例: 无符号整数存储范围:0~2^8 - 1 [0, 255] 有符号整数存储范围:-2^7 ~ 2^7 - 1 [-128, 127] 练习:考虑以下C代码
int
x = -1;
unsigned
u = 2147483648; pr
int
f("x = %u = %d \n", x, x); pr
int
f("u = %u = %d \n", u, u); 在32位机器上运行上
C语言无符号数赋值为负数时的%d%u
输出
问题解释
文章目录问题发现什么是无符号整形补码的计算无符号整形的
输出
正确时:错误时:问题解决
int
用%d和%u
输出
unsigned
int
用%d和%u
输出
问题发现 近日在练习过程中发现无符号整形数如果赋值为“-1”可以用%d进行
输出
,从而
得到
问题 代码如下 #include<stdio.h>
int
main() {
unsigned
int
e = -1; //
输出
结果是-1,说明这里无...
最简单的C程序设计——顺序程序设计
C语言的概述。 C语言的语句都是用来完成一定操作任务的。一个函数包括声明部分和执行部分,执行部分是由语句组成的。即一个C程序可以由若干个源程序文件组成,一个源文件可以由若干个函数和预处理命令以及全局变量声明部分组成,函数由数据的声明部分和执行部分组成。 C语句分为五类: 控制语句,if()···else··· 条件语句,for()···循环语句等等 函数调用语句,由一个函数调用加一个分...
C语言
70,019
社区成员
243,267
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章