Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 24
1

Вывод символа в 8-битной кодироке

23.10.2013, 09:38. Показов 629. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Суть - необходимо вывести символ в 8-битной кодировке ASCii.Вывожу через printf("%d",C), где С - считываемый символ.Вывод не то,что нужно. На символ s вывел 98

C
1
printf(" %d",C);
Как можно вывести именно 8-битную кодировку символа?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.10.2013, 09:38
Ответы с готовыми решениями:

Внедрение из 32-битной программы 64-битной dll в 64-битный процесс, возможно ли?
Добрый вечер. Для внедрение dll в сторонний процесс использую метод из книги Рихтера. Суть этого...

'Какой размер имеет переменная типа int в 32 битной и в 64 битной OC?
Объектно-ориентированное программирование в С++ Р. Лафоре.

Создание 64-битной программы на 32-битной системе: возможно ли?
Здравствуйте. Я хотела бы разрабатывать 64-битные приложение в Delphi XE, но у меня в распоряжении...

Годен ли backup 32-х битной ОС для восстановления на 64-х битной?
Здравствуйте! Собственно вопрос изложен в названии темы! Заранее спс!

5
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
23.10.2013, 09:47 2
а ты что ожидал?
0
0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 24
23.10.2013, 09:56  [ТС] 3
Не совсем знаком с 8-битной кодировкой,думал,может он что-то другое должен вывести,навроде двоичного.
Разбираю адаптивное кодирование,везде кодируется как 0 и 1,а тут 98.
"Интервальное кодирование"
/*Интервальный код */
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream.h>
#include <math.h>
#include <windows.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
struct Follower { //структура
Follower *left;
Follower *right;
char Words;
float Count;
};
struct liambda 
{ char word[5]; };
 
int main(){
int i=0,size=0,d=0,set_pos=0;int N=6;
char w[N],nul,C;
 
Tree root=NULL;
 
Tree massive [100] ;
IintMassive(massive);
FILE *file;
file=fopen("123.txt","r+");
 
 
 
N=3;
liambda u [N+1] ;
for(i=0;i<5;i++)
u[i].word[0]='\0';
strcat(u[0].word,"0");
strcat(u[1].word,"10");
strcat(u[2].word,"110");
strcat(u[3].word,"111");
system("cls");
 
 
while(1)
{
d = 0;
while (d<set_pos)      //передвижение окна при очередном прохождении по циклу
   { nul=getc(file); d++;} 
   
for(d=0;d<N;d++)
{w[d]=getc(file);}//окно
C=getc(file);// кодируемый символ
if (C == EOF) break;      
      
IntervalCode(w,C,u,N);//окно,символ для кодировки,префиксный код,размер окна
/* Обнуление */
w[0]='\0';
IintMassive(massive); 
rewind(file);
set_pos++;
}
И сама функция
C
1
2
3
4
5
6
7
8
9
10
void IntervalCode(char *w,char C,liambda *u,int size)
{ int i=0;bool found=false;
for (i=0;i<size;i++)
 { if (C == w[i])
        {printf("%s",u[i].word);found=true;}
 }
 if (found == false)
   { printf("%s",u[size].word);printf(" %d",C); }
  printf("\n");
}
0
419 / 418 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
24.10.2013, 17:09 4
C
1
2
3
4
5
6
7
8
9
10
11
void print_binary(int s) {
    int cnt=sizeof(s) * 8 - 1;
    int space=8;
    int i=0;
    printf("\n");
    for (i = cnt; i >= 0; --i) {
        if ((i + 1) % space == 0 && i != cnt)
            printf(" ");
        printf("%d", (s >> i) & 1);
    }
}
0
0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 24
25.10.2013, 10:14  [ТС] 5
Спасибо,работает.
Вероятно,это наглость,но спрошу - как работает
C
1
printf("%d", (s >> i) & 1);
Сколько ни изучаю С,не видел такой конструкции
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
25.10.2013, 10:45 6
(s >> i) означает сдвиг s влево на i бит.
... &1 - побитовое логическое умножение на число с единицей в самом правом разряде,
т.е. выделение только правого разряда.
0
25.10.2013, 10:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2013, 10:45
Помогаю со студенческими работами здесь

Запуск 32-битной программы на 64-битной системе
Подскажите создал простую программу Console.WriteLine(&quot;Олололо&quot;); Console.ReadKey(); И почему в...

Ввод символа с клавиатуры, вывод на экран символа и его кода в десятичной записи
Доброе время суток. Нужно написать программу на ассемблере, которая осуществляет ввод символа с...

Ввод символа из терминала, изменение регистра символа, вывод его в терминал (ассемблер)
Задача:Если вводимы элемент строчный, то перести его в заглавный(и наоборот). Пример:Ввели (a) -...

Переустановка 32 битной винды до 64 битной
Всем привет! Помогите глупому юзеру с переустановки винды. Сейчас стоит 32 бит вин 7 лицензия. До...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru