2)If I have lets say

char Hi[4] = "3E2C";

and I wanted to put this into a BYTE Bye[2]; how would I do this so that Bye[0] = 0x3E and Bye[1] = 0x2C?

Thanks guys!

5
Contributors
10
Replies
11
Views
7 Years
Discussion Span
Last Post by gerard4143

``char Hi[4] = {'3','E','2','C'};``

is four bytes with the values of(in ascii)
0x33 = '3'
0x45 = 'E'
0x32 = '2'
0x43 = 'C'

and this (in ascii)

``Bye[0] = 0x3E and Bye[1] = 0x2C``

would equate to

``Bye[0] = '>' and Bye[1] = ','``

I think your mixing up characters and their acsii values.

Edited by gerard4143: n/a

no those are the hex values that should be placed in the byte accordingly.

char Hi[4] = "3E2C";
needs to be converted into:
Bye[0] = 0x3E;
Bye[1] = 0x2C;

no those are the hex values that should be placed in the byte accordingly.

char Hi[4] = "3E2C";
needs to be converted into:
Bye[0] = 0x3E;
Bye[1] = 0x2C;

Firstly, you got to read the Hi array 2 characters at a time. For the first character, bit shift it to the left 4 positions using the operator (<<). Using the results, apply the bitwise OR operation (|) with the second character. You should get the result in a single byte.
For bitwise operations, you can refer to this link http://www.fredosaurus.com/notes-cpp/expressions/bitops.html

Jesus, I don't understand :(

Also whats the safest c++(exe) to php and php to c++(exe) communication

Sorry for bumping after 9 hrs but I'm going back to school in 2 days and I will not be able to code so I want to finish this :(

I don't known much about PHP, but can you use a pipe or set up a socket connection?

Maybe this will help.

``````#include <iostream>
using namespace std;

int main(){
char sample[] = "3E";
int result[1] = {};

cout << "Encoding : " << sample << endl;

result[0] = (sample[0] << 8) | (sample[1]) ; //encode

cout << "Encoded value : " << hex << result[0] << endl;
cout << char( (result[0] & 0xff00) >> 8) << endl; //decode top 8 bits
cout << char(result[0] & 0x00ff) << endl; //decode bottom 8 bits
return 0;
}``````

This was awesome! But, it needs to be placed inside a byte
BYTE[0] = 0x3E;

And what's the problem?

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.