🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #1711

[Java] Precision los char -> byte

#1711
From: Vincent De Baere
Date: Wed, 15 Dec 2004 10:48
48 lines
2617 bytes
Beste allemaal

Een korte situatieschets: ik krijg een sequentie ascii of latin1 chars
door. Daar moeten twee dingen mee gebeuren: er moet een LRC op berekend
worden (wat neerkomt op een bitgewijse EXOR van alle karakters), daarna
moet ik die sequentie als een String kunnen behandelen.

In Java heb ik het probleem dat een char 2 bytes inneemt (het moet
namelijk ook unicode characters kunnen bevatten). Een omzetten van die
char naar een byte geeft dan ook een compiler error "possible los of
precision". Enig idee hoe ik dat opgelost kan krijgen?

AFAIK geeft het helemaal niets als ik die tweede byte kwijtgeraak, de
ascii-tekens passen namelijk in ��n byte. Alleen jammer dat ik de
compiler daar niet van kan overtuigen. En meestal ligt dat dan aan mij,
vandaar... .

Ik heb het geheel in c++ uitgewerkt dat is het werkende resultaat: De LRC
staat op het einde als int om testen te vereenvoudigen: indien het als een
char zou weergegeven worden en de LRC is een non-printing character, dan
heb ik het er raden naar wat de output is, want d'r komt dan helemaal
niets op mijn console. Opmerkingen op de C++ zijn meer dan welkom, dit is
zowat het eerste stukje code dat ik daarin schrijf, excuses dus voor
eventuele blunders.

#include <iostream>
#include <string>

using namespace std;

int main(){
	/* unsigned char should allow us for 8bit latin1 */
	unsigned char array[10];
	string str = "";
	int seed(0);
	int result(0);
	
	for(int i = 0; i < 10; i++){
		cout << "input char"<< endl;
		cin >> array[i];
		result = seed ^ (int)array[i];
		seed = result;
		str += array[i];
	}
	
	cout << "LRC: " << result << endl;
	cout << "String: " << str << endl;
}
Technical Details
Message-ID: <pan.2004.12.15.10.48.05.274938@lilly.csoft.net>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!feeder.enertel.nl!nntpfeed-01.ops.asmr-01.energis-idc.net!lightspeed.eweka.nl!newsfeed.multikabel.nl!skynet.be!newspost001!tjb!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Thread: fcea4,344e68e2aa7407,start
X-Google-Attributes: gidfcea4,public
X-Google-Language: DUTCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!feeder.enertel.nl!nntpfeed-01.ops.asmr-01.energis-idc.net!lightspeed.eweka.nl!newsfeed.multikabel.nl!skynet.be!newspost001!tjb!not-for-mail
From: Vincent De Baere <vdebaere@lilly.csoft.net>
Subject: [Java] Precision los char -> byte
Date: Wed, 15 Dec 2004 11:48:08 +0100
User-Agent: Pan/0.14.2.91 (As She Crawled Across the Table)
Message-ID: <pan.2004.12.15.10.48.05.274938@lilly.csoft.net>
Newsgroups: be.comp.programming
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Lines: 48
Organization: -= Belgacom Usenet Service =-
NNTP-Posting-Host: 569f515a.news.skynet.be
X-Trace: 1103107688 news.skynet.be 31681 81.244.116.35:32949
X-Complaints-To: usenet-abuse@skynet.be