delorie.com/archives/browse.cgi | search |
From: | boylesgj AT lion DOT cs DOT latrobe DOT edu DOT au (Gregary J Boyles) |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Char/unsigned/unsigned char conversion problems. |
Date: | 16 Feb 1997 10:16:57 GMT |
Organization: | Comp.Sci & Comp.Eng, La Trobe Uni, Australia |
Lines: | 62 |
Distribution: | world |
Message-ID: | <5e6mqp$6ah@lion.cs.latrobe.edu.au> |
NNTP-Posting-Host: | lion.cs.latrobe.edu.au |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
I am moving characters + text attribute to a window, which is later copied directly to video RAM. The window is stored as a 1D array and the text attribute is an unsigned with the lower byte zeroed. The function : void WindowC::Write(char Ch) { <calcualte array index from cursor coordinates> Window[Index]=Attribute | (unsigned)Ch; <move the window cursor> } In one example of using this function I should have seen a light grey character on a blue back ground. I.E. 0 001 0111 10110011 | | | | | | | +------ASCII 179 | | +-------------light grey fore ground | +------------------blue back ground +---------------------non blinking Instead I saw a white flashing character on a light grey back ground. I.E. 0 001 0111 10110011 | | | | | | | +------ASCII 179 | | +-------------white fore ground | +------------------light grey back ground +---------------------blinking I was assuming that the upper byte would be zeroed in the conversion (unsigned)Ch. I.E. char : 10110011 -----> unsigned : 0000000010110011 Is this assumption wrong and the upper byte could be anything? Originally the function was as follows: void WindowC::Write(unsigned char Ch) { cout<<Ch; <calcualte array index from cursor coordinates> Window[Index]=Attribute | (unsigned)Ch; <move the window cursor> } However passing a space character (' ') to this function resulted in a '3' being written to stdout and passing ASCII 179 to it resulted in '-' being written to stdout. Can some one explain what is happening in the conversion from char to unsigned char.
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |