随笔 - 170  文章 - 0  评论 - 16  阅读 - 35908 

#include <stdio.h>
#include <stdlib.h>

#include<iostream>
using namespace std;

int main(int argc, char *argv[])
{
unsigned short k3, k1, k2, k4;
unsigned int final_val;
unsigned short sc1,sc2,sa1,sa2;
unsigned short *val1, *val2;
unsigned int F1 = 0, F2 = 0, F3= 0, F4 = 0;
char m1[2] = {'z', 'y'};
char m2[2] = {'y', 'x'};

val1 = (unsigned short *)m1;
val2 = (unsigned short *)m2;

printf("\n m1=0x%x; m2=0x%x \n", *val1, *val2);
char *c1 = (char *)m1; //
char *c2 = (char *)(m1 + 1); //

char *a1 = (char *)m2; //
char *a2 = (char *)(m2 + 1); //

sc1 = *c1;
sc2 = *c2;

sa1 = *a1;
sa2 = *a2;

F1 = sc1 * sa1;
if ((F1 & 0xff00) > 0)
{
k1 = (F1 & 0xff00) >> 8;
F1 = F1 & 0xff;
F2 += k1;
}

F2 += sc2 * sa1;
if ((F2 & 0xff00) > 0)
{
k2 = (F2 & 0xff00) >> 8;
F2 = F2 & 0xff;
}

F3 = sc1 * sa2;
if ((F3 & 0xff00) > 0)
{
k3 = (F3 & 0xff00) >> 8;
F3 = F3 & 0xff;
F4 += k3;
}

F4 += sc2 * sa2;
if ((F4 & 0xff00) > 0)
{
k4 = (F4 & 0xff00) >> 8;
//F4 = F4 & 0xff;
}

final_val = F1 + ((F2 + F3) << 8) + ((k2 + F4) << 16);

printf("\nF1=0x%x, F2=0x%x, F3=0x%x, F4=0x%x final= 0x%x \n", F1, F2, F3, F4, final_val);

}

 

posted on   北京开发  阅读(36)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示