Avatar billede schristensen Praktikant
01. juni 2012 - 23:23 Der er 2 kommentarer og
1 løsning

Binary Coded Decimal til int

Hej

Jeg har et stykke Java kode som konverterer fra bcd til en int, men jeg har ikke haft held med at få samme resultat fra noget C# kode.

    String bcdString = "14";
    char high = (char) (bcdString.charAt(0) - '0');
    char low = (char) (bcdString.charAt(1) - '0');
    return (int) (high << 4) | low

I Java giver dette 20, men i C# er det ikke lykkedes mig at få det resultat :-(

Hvad er det lige jeg overser?

På forhånd tak.
Avatar billede runesoft Nybegynder
01. juni 2012 - 23:54 #1
String bcdString = "14";
char high = (char)(bcdString[0] - '0');
char low = (char)(bcdString[1] - '0');
return (int)(high << 4) | low;
Avatar billede schristensen Praktikant
02. juni 2012 - 00:11 #2
Hej Rune

Det virker ikke, men det gør følgende. Den må have problemer med '0'.

string bcdString = "14";
string zeroChar = "0";
char high = (char)(bcdString[0] - zeroChar[0]);
char low = (char)(bcdString[1] - zeroChar[0]);
int temp = (int)(high << 4) | low;
Avatar billede runesoft Nybegynder
02. juni 2012 - 00:19 #3
Det virker da fint. Man kan sagtens trække to chars fra hinanden. Du behøver faktiskt heller ikke at caste den til en char bagefter.

-Rune
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester