Страниц: [1]
  Печать  
Автор Тема: преобразование типов в С  (Прочитано 7025 раз)
sen
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« : Августа 22, 2008, 06:01:53 pm »

Как можно преобразовать unsigned short в char?
Записан
lapaev
Участник
*
Offline Offline

Сообщений: 18


Просмотр профиля
« Ответ #1 : Августа 22, 2008, 06:30:46 pm »

unsigned short a;
char b;
b = a;        // неявно
b = (char) a; // явно
Записан
osDrummer
Jr. Member
**
Offline Offline

Сообщений: 73


Problem Resolver


Просмотр профиля
« Ответ #2 : Августа 22, 2008, 06:33:11 pm »

unsigned short v1=0xAABB;
char v2=0;

v2 = (char) v1;

Вот только с потерей старшего байта все это.. v2=0xBB
Записан
sen
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #3 : Августа 22, 2008, 06:52:24 pm »

Не получается так просто, компилятор матерится! Я прогаю под QNX на PhAB 1.14 и ломаю голову, как здесь преобразование сделать, чтобы мне потом указатель на char в другую функцию запихнуть, которая выведет его пользователю в окошко!
Записан
sen
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #4 : Августа 22, 2008, 06:59:35 pm »

мне бы вот какую-нибудь функцию из семейства itoa-подобных или sprintf-подобных, что бы unsigned short в char превращала или хотя бы в int на худой конец. Керниган и Р. мне бы сейчас сказали: сам напиши на си такую функцию, но не умею я с битами работать)
Записан
qnxloder
Sr. Member
****
Offline Offline

Сообщений: 292


Просмотр профиля
« Ответ #5 : Августа 22, 2008, 07:29:29 pm »

Huh?Huh?Huh?
Записан
Fregl
Sr. Member
****
Offline Offline

Сообщений: 396


Просмотр профиля
« Ответ #6 : Августа 22, 2008, 07:57:33 pm »

что то я не понял что автор хочет?
Записан
Landy
Jr. Member
**
Offline Offline

Сообщений: 65


Просмотр профиля WWW
« Ответ #7 : Августа 22, 2008, 11:00:27 pm »

sen
чтобы мне потом указатель на char в другую функцию запихнуть, которая выведет его пользователю в окошко!


void f1(char *ptr)
{
 ...
}

unsigned short v1=0xAABB;

f1((char *)&v1);
...

Huh?
Записан
kuenix
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #8 : Августа 24, 2008, 09:59:37 pm »

Почему-то мне кажется, что Керниган и Р. вам сказали бы нечто другое после прочтения. unsigned shot в qnx имеет длину 2 байта, а char один. при преобразовании вы потеряете старший байт. и биты вам тут не помогут.
Записан
Dr.Stein
Гость
« Ответ #9 : Августа 27, 2008, 07:56:57 pm »

Скорее всего это в программе вообще не нужно.
Записан
Страниц: [1]
  Печать  
 
Перейти в: