首页
社区
课程
招聘
32字节的16进制输入的char数组,进行加法运算
发表于: 2015-4-10 19:15 5981

32字节的16进制输入的char数组,进行加法运算

2015-4-10 19:15
5981
各位大神,我有一个随机未知的32字节的char数组,想请问一下如何进行加1操作?比如说:

char rng[32]={0x6B,0x6B,0x6B,0x6B, \
            0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B, \
            0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B, \
      0x6B,0x6B,0x00,0x10,0x00,0x00,0x03,0xF0};

对rng[32]进行加1操作,只需要末位加1,然后处理进位问题,如上加1应输出0xF1,注意字符数组是未知的32字节,上面只是一个输入,C代码怎么写?谢谢各位!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 341
活跃值: (138)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
2
#include <windows.h>

int main(int argc, char* argv[])
{
        char rng[32]={0x6B,0x6B,0x6B,0x6B, \
                0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B, \
                0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B, \
      0x6B,0x6B,0x00,0x10,0x00,0x00,0x03,0xF0};

        *(BYTE*)(rng+31) += 0x1;

        printf("Hello World!%s\n", rng);
        return 0;
}
2015-4-10 19:45
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不是在window平台上的,不能加window.h哦
2015-4-11 11:57
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
求大神们给个思路或程序被,要能处理溢出,如0xFF进位的,谢谢
2015-4-11 15:56
0
雪    币: 200
活跃值: (38)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=时光飞逝;1364477]各位大神,我有一个随机未知的32字节的char数组,想请问一下如何进行加1操作?比如说:

char rng[32]={0x6B,0x6B,0x6B,0x6B, \
            0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B, \...[/QUOTE]

首先你的rng要是unsigned char,因为c里面signed整数的溢出行为是没有定义的,而char本身没有规定是unsigned还是signed,所以这样写会有可能导致未定义的行为。然后就可以任性的使用c++11了

bool carry(true);
std::for_each(rng, rng+32, [&](unsigned char& v){
        if(carry){
                carry = (v+=carry) == 0;
        }
});
2015-4-11 16:48
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
没看懂呀,大神,能用C来写么,还有就是,rng是unsigned char,这个能用大数加法来处理么,请指教,谢谢!
2015-4-13 10:05
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
不要沉,不要沉~~~~~~~···········
2015-4-13 15:09
0
雪    币: 10631
活跃值: (3549)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
这个叫128bit加法,度娘一下就知道
2015-4-14 15:55
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
昨天分析了一下问题,现在倒腾出来了,谢谢各位的宝贵意见!
2015-4-15 09:06
0
游客
登录 | 注册 方可回帖
返回
//