那位老大能把这段C代码改为Delphi
C/C++ code:
static void saacproto_jEncode(char *src,int srclen,int key,char *encoded,int *encodedlen,int maxencodedlen)
{
char sum=0;
int i;
if(srclen+1 > maxencodedlen){
*encodedlen = maxencodedlen;
for(i=0;i<(*encodedlen);i++)encoded[i] = src[i];
}
if(srclen+1 <= maxencodedlen){
*encodedlen=srclen+1;
for(i=0;i<srclen;i++){
sum = sum + src[i];
if(((key%7) == (i%5))||((key%2) == (i%2))) src[i] = ~src[i];
}
for(i=0;i<(*encodedlen);i++){
if(abs((key%srclen)) > i) encoded[i] = src[i] + sum*((i*i)%3);
if(abs((key%srclen)) == i) encoded[i] = sum;
if(abs((key%srclen)) < i) encoded[i] = src[i-1] + sum*((i*i)%7);
}
}
}
static void saacproto_jDecode(char *src,int srclen,int key,char *decoded,int *decodedlen)
{
char sum=0;
int i;
*decodedlen=srclen-1;
if( *decodedlen == 0 ){
return; /* return error if length is 0 */
}
sum = src[abs(key%(*decodedlen))];
for(i=0;i<srclen;i++){
if(abs((key%(*decodedlen))) > i) decoded[i] = src[i] - sum*((i*i)%3);
if(abs((key%(*decodedlen))) < i) decoded[i-1] = src[i] - sum*((i*i)%7);
}
for(i=0;i<(*decodedlen);i++){
if(((key%7) == (i%5))||((key%2) == (i%2)))decoded[i] = ~decoded[i];
}
}
help~~
it's easy
help me
无论对错,分先给了
相关问答:
13个人围成一圈,从第一个人开始顺序报号1,2,3。凡报到3者退出圈子,找出最后留在圈子中的人原来的序号
结果应该是13 可我的程序的结果是11 希望好心人帮改一下
#include <stdio.h>
#include < ......
以前在VC里面建一个工程,都只用一个 .c 文件,昨天在一个工程里用了两个 .c文件了,遇到问题了,请大家指点。比如:
File1.c Fil ......
#include <stdio.h>
#include <graphics.h>
void main()
{
int x0,y0,x1,y1,driver,mode,i;
driver=VGA;
mode=VGAHI;
initgraph(&driver,&mode,&qu ......
//C 接口
extern "C"
{
TESSDLL_API int __cdecl GetTessText(const char *imagefile, char *text);
}
//我在C#中声明
//调用C DLL 中的函数
[DllImport("OCRapi.dll&quo ......
ANSI/ISO C 标准这样描述:
在上一个和下一个序列点之间, 一个对象所保存的值至多只能被表
达式的计算修改一次。而且前一个值只能用于决定将要保存的值。
实在不理解这句话,请大家一起说说?? ......