小编Vla*_*tai的帖子

在减法中携带旗帜

我正在使用MASM32.

使用此代码:

mov eax,5
sub eax,10
Run Code Online (Sandbox Code Playgroud)

将设置CF状态标志.但是使用我的铅笔和纸,我实际上发现MSB没有携带任何东西.是的,我知道从减去数量较少的数字集CF减去.但我想知道为什么?

因为使用此代码:

mov eax,5
mov ebx,10
not ebx
add ebx,1
add eax,ebx
Run Code Online (Sandbox Code Playgroud)

CF标志永远不会被设置.

x86 assembly masm status carryflag

5
推荐指数
1
解决办法
5991
查看次数

C++.将1除以任何数字得到0

当我尝试除以1/60或1 /(60*60)时,它给出0.甚至在调试器窗口中.我有点困惑,因为2/3或2.5/6给出了结果.

我的代码:

int main()
{   
    double k1 = 1/60;
    cout << k1
        << endl;
    double k2 = 1/(60*60);
    cout << k2
        << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我感谢您的帮助.

c++ division

5
推荐指数
1
解决办法
3461
查看次数

类方法和参数传递

我一直在编程,我发现了c ++类中的奇怪行为.所以我创建了一个包含字符串的简单类,该类的构造函数和从对象打印字符串的friend方法(show).但正如你在main函数中看到的那样.我传递给方法(显示)简单的字符串,它的工作原理.我发现它很方便,但是如果方法参数引用了一个对象,它为什么会起作用?

#include <iostream>
using namespace std;

class lol
{
  char * str;
public:
  lol(const char * s);
  friend void show(const lol & l);
};

lol::lol(const char * s)        //assign string to object
{
  str = new char[strlen(s)+1];
  strcpy(str,s);
}

void show(const lol & l)        //prints string from object
{   
  cout << l.str;
};

int main()
{
  show("TEST"); //passing string but not an object
  return 0;
};
Run Code Online (Sandbox Code Playgroud)

c++ methods class

3
推荐指数
1
解决办法
119
查看次数

标签 统计

c++ ×2

assembly ×1

carryflag ×1

class ×1

division ×1

masm ×1

methods ×1

status ×1

x86 ×1