求大规模计算负数的方法!

神的理想 2013-01-23 09:34:20

int x = 3;
x = -x;


struct count
{
int x1;
int x2;
int x3;
int x4;
int x5;
int x6;
}

大规模计算负数,有没有更好的实现方法?如果一个结构体中有很多变量,求他们的负数,有什么好办法?用循环?
...全文
154 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-01-24
  • 打赏
  • 举报
回复
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构…… 对学习编程者的忠告: 眼过千遍不如手过一遍! 书看千行不如手敲一行! 手敲千行不如单步一行! 单步源代码千行不如单步对应汇编一行!
#include <stdio.h>
#include <memory.h>
struct count {
int x1;
int x2;
int x3;
int x4;
int x5;
int x6;
} c,*p;
int main() {
	p=&c;
    __asm {
        push ecx
        push edi
        mov eax,3
        mov ecx,6
        mov edi,p
        rep stosd
        pop edi
        pop ecx
    }
    printf("%d,%d,%d,%d,%d,%d\n",c.x1,c.x2,c.x3,c.x4,c.x5,c.x6);
    __asm {
        push ecx
        push edi
        push esi
        mov esi,p
        mov edi,esi
        mov ecx,6
    next:
        lodsd
        neg eax
        stosd
        loop next
        pop esi
        pop edi
        pop ecx
    }
    printf("%d,%d,%d,%d,%d,%d\n",c.x1,c.x2,c.x3,c.x4,c.x5,c.x6);
    return 0;
}
//3,3,3,3,3,3
//-3,-3,-3,-3,-3,-3
coco123fdsg 2013-01-23
  • 打赏
  • 举报
回复
最简单的方法,就是你可以把这个数当作负数来处理,算出最后的结果之后,再进行符号判断和偏差处理用意念
sduxiaoxiang 2013-01-23
  • 打赏
  • 举报
回复
引用 5 楼 zhouxicai 的回复:
方法不错,就是看着似乎不太安全,直观,难道要在封装一层函数,加个操作符重载?难道真没有API支持?
struct中加函数吧
神的理想 2013-01-23
  • 打赏
  • 举报
回复
方法不错,就是看着似乎不太安全,直观,难道要在封装一层函数,加个操作符重载?难道真没有API支持?
阿麦 2013-01-23
  • 打赏
  • 举报
回复
我在沙发附的那段就是啊。
神的理想 2013-01-23
  • 打赏
  • 举报
回复
操作内存?难道就没有API支持?
sduxiaoxiang 2013-01-23
  • 打赏
  • 举报
回复
都是整数的话 直接操作内存就是
阿麦 2013-01-23
  • 打赏
  • 举报
回复
用循环是个好办法。循环执行起来速度很快。 如果变量不想用数组,也可以这样(但不推荐)

count c;
int* p = (int*)&c
for (int i = 0; i < 6; ++i, ++p)
{
    *p = -*p;
}

65,206

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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