编辑代码

#include <stdio.h>
int main () {


typedef unsigned int uint32_t;

unsigned int num_rounds=2;

uint32_t v[2]={0x11223344,0xEEDDCCBB};

uint32_t const  k[4]={0x00000011,0x00000022,0x00000033,0x00000044};//sa_constant1

//uint32_t const  k[4]={0x00000033,0x0000005A,0x000000B7,0x00000098};//sa_constant2

unsigned int i;

    uint32_t v0=v[0], v1=v[1], sum=0, delta=0x9E3779B9;

        for (i=0;i<num_rounds;i++)
        {

            v0+=(((v1<<4)^(v1>>5))+v1)^(sum+k[sum&0x03]);

            sum+=delta;

            v1+=(((v0<<4)^(v0>>5))+v0)^(sum+k[(sum>>11)&0x03]);

            printf("%X\n",v0);
        }

    v[0]=v0; v[1]=v1;

    printf("%X\n",v0);



}