c++-为什么结果会不同?请大神指教

问题描述

为什么结果会不同?请大神指教
#include
using namespace std;

int main() {
unsigned int x;
unsigned int y = 100;
unsigned int z = 50;
x = y - z;
cout << ""Difference is: "" << x << endl;
x = z - y;
cout << ""nNow difference is: "" << x << endl;
return 0;
}

解决方案

计算机内部计算以补码运算。

解决方案二:
无符号整形数据存储,其范围是把0到4294967295按顺序排列成一个“环形”,这样的话,对于0两边的数就是1和4294967295。如果超出了范围,程序也会给出一个结果但这个结果是错误的。依据这个原理在使用中出现了-1,那么程序给出的(错误)结果就是环形中0旁边的数,显然不会是1,只能是4294967295。依次类推。

解决方案三:
第一个50,第二个-50,当然不一样了

解决方案四:
请研究一下,补码和数据溢出。

时间: 2024-10-30 01:03:08

c++-为什么结果会不同?请大神指教的相关文章

menu-菜鸟请大神指教,关于在fragment中加入vierpager的问题

问题描述 菜鸟请大神指教,关于在fragment中加入vierpager的问题 package com.yanis.yc_ui_fragment_menu; import java.util.ArrayList; import java.util.List; import com.health.Circle; import com.health.Information; import com.health.Market; import android.os.Bundle; import andr

编程c语言-求助!菜鸟一枚 请大神指教!

问题描述 求助!菜鸟一枚 请大神指教! 请问用c语言怎么计算校验和?能将带有汉字的文件读入然后计算?过程怎么写!好着急啊! 解决方案 文件不管有没有汉字,都当作二进制数据.校验和还分为不同位数的. 具体要看对方协议的要求 仅供参考:http://download.csdn.net/detail/captain_black/679608 解决方案二: 1.中文字符串可以使用printf().puts()等函数直接输出.#include #include int main(){ const char

c++-用C++做个B2c电子商务 ,没有思路,请大神指教!

问题描述 用C++做个B2c电子商务 ,没有思路,请大神指教! 用户注册,用户登录.(编号,账号,密码,姓名,资金,地址) 登录后菜单项:选购商品,查看订单,查看资金,充值,修改账户信息,注销,退出 商家登录,此处商家和系统平台是统一角色,平台自营类似苏宁易购. 登录后菜单项:查看.添加.修改.删除商品(编号,商品名称,商品信息,价格,库存量,规格,颜色,所属商家), 查看订单,查看金额,注销,退出,相应的子菜单里应有返回上一级菜单功能. 选购商品,用户登录后可以直接商品进行购买下单. 记录订单

协议-Android软件使用TCP进行通信,连接不到服务端,在同一子网,代码跟异常日志都有,请大神指教

问题描述 Android软件使用TCP进行通信,连接不到服务端,在同一子网,代码跟异常日志都有,请大神指教 客户端线程:class BB1 extends Thread{ public void run() { try { System.out.println(""hahahha""); Socket client=new Socket(ipadressPORT); System.out.println(client.getPort()); mingling=&qu

eclispe android-eclipse第一次创建android工程出错,请大神指教

问题描述 eclipse第一次创建android工程出错,请大神指教 解决方案 工程make编译一下看看,有些出现红色的X是因为没有编译. 解决方案二: 看下环境配置是否正确.新建项目就出错一般是环境的问题 解决方案三: 不知道你的adt是不是自己装的,我之前也遇过,后来用google已集成的adt就没事了,要我可以发给你

vs2012-我的C程序VS2013报错,都不知道错哪了,请大神指教

问题描述 我的C程序VS2013报错,都不知道错哪了,请大神指教 hash函数名和数组next都定义了,都不知道哪错了 解决方案 感觉是标准库的某些内容重复了. std::next是里的template, std::hash是里的template. 都是c++ 11定义的. 解决方案二: 自己重新定义一下名字,这几个名字已经在类库中存在了 解决方案三: 你的定义重复了,如果你的代码没有重复定义它们,可能是和你包含的库文件冲突了,那么换个名字看看 解决方案四: hash和next重复定义了. 你可

dw-PB中怎么判断数据窗口导入excel的数据中有申请号是重复的,我这么写表达式老是错误,请大神指教

问题描述 PB中怎么判断数据窗口导入excel的数据中有申请号是重复的,我这么写表达式老是错误,请大神指教 for i=2 to ll_rows li_count =dw_list .insertrow(0) dw_list.setrow(li_count) //申请号5 dw_list.object.申请号[li_count] = ExcelServer.ActiveSheet.Cells[i,5].text next ll_found = dw_list.Find("dw_list.obje

解锁按钮-Java web 如何按钮的解锁问题,根据需求该如何做,请大神指教

问题描述 Java web 如何按钮的解锁问题,根据需求该如何做,请大神指教 1.点击"保存按钮"后保存录入学生成绩,教师可对保存的成绩进行修改, 2.点击"提交按钮"后学生成绩锁定不能再保存修改,只能查看.(即"保存按钮"和"提交按钮"变灰色) 3.解锁功能仅开放给管理员,管理员对成绩解锁后,教师可再次保存或者提交数据. 请问这个过程如何做,高人给点指点吧!!!!!! 解决方案 数据库中每个学生的信息中添加一个status字

for-在对语音信号进行MFCC提取时,进行语音分桢的情况。请大神指教。

问题描述 在对语音信号进行MFCC提取时,进行语音分桢的情况.请大神指教. int MFCC::Enframe(RealVec& signal, int winsize, int hopsize, RealMat& frames) { int frmnum = (int)((signal.GetLength()-winsize)/hopsize) + 1; frames.Resize(frmnum, winsize); frames.Zeros(); for(int i =0; i<

指针-请大神指教二维数组,太感谢了!

问题描述 请大神指教二维数组,太感谢了! #include void main() { int a[2][2]={2,6,1,9}; int *p; int i; for(p=a;p<a+4;p++) printf("%dn",*p); }//这个会出现错误 #include void main() { int a[2][2]={2,6,1,9}; int p; int i; p=a; for(i=0;i<4;i++) printf("%dn",(p+i