首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求大规模计算负数的步骤

2013-02-17 
求大规模计算负数的方法!本帖最后由 zhouxicai 于 2013-01-23 21:36:19 编辑int x 3x -xstruct coun

求大规模计算负数的方法!
本帖最后由 zhouxicai 于 2013-01-23 21:36:19 编辑
int x = 3;
x = -x;


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

大规模计算负数,有没有更好的实现方法?如果一个结构体中有很多变量,求他们的负数,有什么好办法?用循环?
[解决办法]
用循环是个好办法。循环执行起来速度很快。
如果变量不想用数组,也可以这样(但不推荐)

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

[解决办法]
都是整数的话 直接操作内存就是
[解决办法]
我在沙发附的那段就是啊。
[解决办法]
引用:
方法不错,就是看着似乎不太安全,直观,难道要在封装一层函数,加个操作符重载?难道真没有API支持?

struct中加函数吧
[解决办法]
计算机组成原理→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

热点排行