Azure (http://msdn.microsoft.com/en-us/library/dd135726.aspx)에 대한 base64 인코딩으로 작업하면 보이지 않습니다. 필요한 문자열을 다시 가져 오는 방법을 알아보십시오. C#에서 다음 작업을 수행 할 수 있습니다. (LINQPad에) 출력합니다Azure의 blobId에 대해 C++에서 int를 little-endian 형식의 바이트로 변환하십시오.
int blockId = 5000;
var blockIdBytes = BitConverter.GetBytes(blockId);
Console.WriteLine(blockIdBytes);
string blockIdBase64 = Convert.ToBase64String(blockIdBytes);
Console.WriteLine(blockIdBase64);
: Qt는/C에서
Byte[] (4 items)
| 136 |
| 19 |
| 0 |
| 0 |
iBMAAA==
는 ++ 나는 그들 모두가 잘못된 값을 반환 몇 aporaches을 시도했다.
const int a = 5000;
QByteArray b;
for(int i = 0; i != sizeof(a); ++i) {
b.append((char)(a&(0xFF << i) >>i));
}
qDebug() << b.toBase64(); // "iIiIiA=="
qDebug() << QByteArray::number(a).toBase64(); // "NTAwMA=="
qDebug() << QString::number(a).toUtf8().toBase64(); // "NTAwMA=="
어떻게하면 C# 버전과 동일한 결과를 얻을 수 있습니까?
'i'가 1 일 때 루프가하는 일을 생각해보십시오. 0xFF00을 원할 때 0xFF를 얻기 위해 0xFF를 1 비트 왼쪽으로 쉬프트합니다. –
for-loop와 동일한 결과를 얻는 다른 방법이 있습니까? – chikuba