有符号整数:-2147483648转换成无符号整数,结果是多少?

csoma 2012-08-29 03:44:46


int x= -2147483648;
unsigned int y;
y=x; //这句语句,类型转换后的结果是多少?



谁说说?
详细说说转换过程!
...全文
2117 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeakeven008 2012-08-30
  • 打赏
  • 举报
回复
各种争论,不错
「已注销」 2012-08-30
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
int型 负数是 -2^31+1=-214748363
[/Quote]
int最大数是0x7FFFFFFF,自己用win自带的计算机转下。你怎么一说,我还以为那个值真溢出了。。。

-2^31+1真的等于-214748363 ??
你用python好好算算吧!
ActivePython 2.7.2.5 (ActiveState Software Inc.) based on
Python 2.7.2 (default, Jun 24 2011, 12:21:10) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> print((-2)**31+1)
-2147483647
>>>
hondely 2012-08-30
  • 打赏
  • 举报
回复
int型 负数是 -2^31+1=-214748363
「已注销」 2012-08-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
x超过int范围了。
[/Quote]char型就是 127 ~ -128,
int型-2147483648 怎么会超过呢?

有符号强转无符号只是解释不通,他们内存数据都相同的,不会去掉符号位。。。所以你懂的
csoma 2012-08-30
  • 打赏
  • 举报
回复


有符号整数:
1000 0000 0000 0000 0000 0000 0000 0000[原] = -2147483648
//这个特殊情况,只有原码。没反码,补码。对否?

csoma 2012-08-30
  • 打赏
  • 举报
回复
楼上各位:
-2147483648,这个是特殊值。



-2147483648:
有符号整数:
1000 0000 0000 0000 0000 0000 0000 0000[原] = -2147483648
//这个二进制是个特殊情况,其实是-0。
//用-0代替-2147483648,对否?

无符号整数:
1000 0000 0000 0000 0000 0000 0000 0000[原] = 2147483648



建鼎呓语 2012-08-30
  • 打赏
  • 举报
回复

-2147483648 在内存中以 0x00,0x00,0x00,0x80 形式存储(小端模式);
而int往unsigned int拷贝时候,不会改变内存中的存储形式;
所以,以unsigned int的眼光来看,内存中的0x00,0x00,0x00,0x80表示0x80000000U;
也即2147483648U
csoma 2012-08-30
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

对电脑而言只有二进制字节,对人脑才有数,正数、负数、整数、小数、……
[/Quote]



8,9楼,对否?
赵4老师 2012-08-30
  • 打赏
  • 举报
回复
对电脑而言只有二进制字节,对人脑才有数,正数、负数、整数、小数、……
lp310018931 2012-08-29
  • 打赏
  • 举报
回复
是2147483648。因为2147483648的二进制形式是1000 0000 0000 0000 0000 0000 0000 0000最高位的1表示负号,现在转换为无符号形式则就是2e+31就是2147483648这么多了
lp310018931 2012-08-29
  • 打赏
  • 举报
回复
是2147483648。因为2147483648的二进制形式是1000 0000 0000 0000 0000 0000 0000 0000最高位的1表示负号,现在转换为无符号形式则就是2e+31就是2147483648这么多了
pathuang68 2012-08-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

引用 3 楼 的回复:

y=2147483648
===============
x= -2147483648 = 80000000h = 1000 0000(..再接24个0)B
无符号数就是2147483648


C/C++ code


//32位计算机

-2147483648:
有符号整数:
11000 0000 0000 0000 00……
[/Quote]

哈哈,你这个都33bit了:)

建议楼主去翻翻《数字电路》中关于二进制计算那部分的内容。
csoma 2012-08-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

y=2147483648
===============
x= -2147483648 = 80000000h = 1000 0000(..再接24个0)B
无符号数就是2147483648
[/Quote]



//32位计算机

-2147483648:
有符号整数:
11000 0000 0000 0000 0000 0000 0000 0000[原]
10111 1111 1111 1111 1111 1111 1111 1111[反]
11000 0000 0000 0000 0000 0000 0000 0000[补] = -2147483648

//最左边位是符号位,其它位是数值。

无符号整数:
11000 0000 0000 0000 0000 0000 0000 0000[原] = 6442450944
//全部位是数值!
/*
如果,全部位是数值。它的十进制是:6442450944,并不是:2147483648?
*/

Gloveing 2012-08-29
  • 打赏
  • 举报
回复
y=2147483648
===============
x= -2147483648 = 80000000h = 1000 0000(..再接24个0)B
无符号数就是2147483648
图灵狗 2012-08-29
  • 打赏
  • 举报
回复
x超过int范围了。
nice_cxf 2012-08-29
  • 打赏
  • 举报
回复
大概是2147483648,-2147483648转成16进制是0x80000000吧,这个数作为无符号数处理就是2147483648
内容概要:本文针对无刷直流电机驱动的电子机械制动(EMB)执行器,建立了考虑Stribeck摩擦特性的非线性耦合动力学模型,并在Simulink环境中完成了系统级仿真分析。研究综合集成了电机动力学、齿轮传动机构与制动执行机构的动力学特性,构建了高保真的机电一体化系统模型。重点引入Stribeck摩擦模型以精确描述低速工况下执行器内部存在的静摩擦、粘滞摩擦与库仑摩擦之间的过渡行为,有效提升了系统在启停、反向运动等瞬态过程中的动态响应仿真精度。通过多工况仿真验证了模型的有效性,能够准确反映摩擦引起的爬行、滞后与定位误差等非线性现象,为EMB系统的高性能控制算法设计(如摩擦补偿、滑模控制)与结构优化提供了高可信度的仿真平台。; 适合人群:从事汽车电子制动系统、电机驱动控制、机电系统建模与仿真研究的研究生、科研人员及工程技术人员,需具备扎实的机械动力学、自动控制理论基础和MATLAB/Simulink仿真能力。; 使用场景及目标:①用于高精度电子机械制动系统的设计验证与性能预测;②为消除摩擦非线性影响的先进控制策略(如自适应控制、智能控制)提供精确的被控对象模型;③深入探究Stribeck摩擦等非线性因素对系统动态性能(如响应延迟、稳态误差)的作用机理; 阅读建议:读者应结合提供的Simulink模型文件,深入剖析Stribeck摩擦模块的数学实现与参数辨识方法,建议通过改变输入指令(如阶跃、正弦)和负载条件进行对比仿真,以直观理解非线性摩擦对系统动态特性的影响。

70,038

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧