Справочный файл (или руководство пользователя) мертв? [закрытый]

Первое замечание, касающееся вашего кода без учета проблемы, заключается в том, почему вы хорошо справляетесь с делом 0..9, но отделяете дела A и B ... и F вместо того, чтобы делать то же самое, что вы делаете для цифра?

так

int hexConversion(int num){
  char hex_buffer[9];
  unsigned int mask = 4026531840;
  for(int i = 0; i < 9; i++){
    int temp = mask & num;
    if(temp < 10){
      hex_buffer[i] = temp + '0';
    }
    else if (temp < 16) {
      hex_buffer[i] = temp - 10 + 'A';
    }
    else {
      hex_buffer[i] = '?';
    }
    mask >>= 4;
  }

  hex_buffer[8] = '\0';

  for(int i = 0; i < sizeof(hex_buffer); i++){
    printf("%c", hex_buffer[i]);
  }
}

Я добавил тест if (temp < 16), обычно бесполезный, если код правильный, но результат:

Компиляция и выполнение:

pi@raspberrypi:/tmp $ gcc -g -pedantic -Wextra h.c
h.c: In function ‘hexConversion’:
h.c:23:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i < sizeof(hex_buffer); i++){
                      ^
pi@raspberrypi:/tmp $ ./a.out
00000002000000?F0??????F???????F000000000??????F

, поэтому в вашем решении вы не пишете по некоторым индексам из-за ошибки в вашем коде

Один из способов сделать это:

void hexConversion(int num){
  char hex_buffer[9];

  for(size_t i = 0; i < sizeof(hex_buffer) -1; i++){
    int temp = (num >> (28-4*i)) & 0xf;
    if(temp < 10){
      hex_buffer[i] = temp + '0';
    }
    else {
      hex_buffer[i] = temp - 10 + 'A';
    }
  }
  hex_buffer[8] = 0;
  puts(hex_buffer);
}

Компиляция и выполнение:

pi@raspberrypi:/tmp $ gcc -g -pedantic -Wextra h.c
pi@raspberrypi:/tmp $ ./a.out
00000002
000000FF
FFFFFFFF
7FFFFFFF
80000000
DEADBEEF

Обратите внимание, что ваш код предполагает, что int на 32b не зависит от размера (но предположим, что char на 8 битах): [1115 ]

void hexConversion(int num){
  char hex_buffer[sizeof(int)*2 + 1];

  for(size_t i = 0; i < sizeof(int)*2; i++){
    int temp = (num >> (sizeof(int)*8-4-4*i)) & 0xf;

    if(temp < 10){
      hex_buffer[i] = temp + '0';
    }
    else {
      hex_buffer[i] = temp - 10 + 'A';
    }
  }
  hex_buffer[sizeof(int)*2] = 0;
  puts(hex_buffer);
}
23
задан Wedge 13 September 2008 в 21:14
поделиться

5 ответов

я перестал работать, если пользователь не мог бы узнать, что сделать от UI? В противном случае, какую степень справки я должен обеспечить? (и для настольного приложения и для веб-приложения)

Они должны быть в состоянии использовать Ваше Ваше приложение, чтобы сделать основные вещи от UI. например, скажите для редактора изображений, они должны быть в состоянии создать новое изображение, и проводить некоторые линии тогда сохраняют его только путем рассмотрения UI.

Это лучше всего сделано следующими общими разметками (как наличие нового, открытого, и сохраните под файлом в строке меню, и использование стандарта открывает и сохраняет диалоговые окна).

то же идет для веб-приложений, люди exspect, чтобы быть в состоянии сделать, основной материал, не имея необходимость читать документы, но для большего количества людей расширенных функций все еще прочитает документы. (например, большинство вскипает, будет читать, в документах для говорится код BB или скидка с цены, по крайней мере, иногда, но они ожидают быть в состоянии отправить, не имея необходимость знать их)

справочные файлы, руководства пользователя и контекстно-зависимая справка онлайн с ключевыми мертвыми F1?

у Них все еще есть свое место. Люди будут использовать их для приобретения знаний о том, как лучше всего использовать различные функции, например, скидка с цены или bbcode, или как использовать фильтры для получения определенных эффектов в редакторе изображений.

1
ответ дан 29 November 2019 в 03:07
поделиться

Три примечания по справке:

  1. F1 / автономная контекстно-зависимая справка всегда обрекалась. Это было скрыто по умолчанию, и таким образом, люди, которые самый необходимый это должно было маловероятно считать его. Была надежда когда-то, что мы будем в состоянии обучить пользователей всегда поражать F1, когда они столкнулись с проблемой, но слишком много приложений без полезной контекстно-зависимой справки... объединенной со слишком многими причудливыми интерфейсами справки... в значительной степени, уничтожили это.
  2. Руководства так же важны теперь, как они когда-либо были. Не столько печатных руководств больше, но руководства онлайн лучше чем когда-либо. Быстрое увеличение wiki-as-a-manual систем помогло здесь, уменьшив оплачиваемую авансом стоимость создания хорошей онлайн-документации. Конечно, много людей просто не читает ...
  3. красота использования веб-страниц как интерфейс приложения состоит в том, что Вы можете комбинировать полезную контекстно-зависимую справку с UI, снимая барьер для новичков и других, которые иначе не могли быть побеспокоены для поиска релевантной информации, когда они застревают.

, Конечно, существует все еще много приложений, даже приложений онлайн, разработанных с тупыми интерфейсами и крошечным небольшим значком справки в углу где-нибудь, по-видимому, надеясь, что последний смягчает первого. Пожалейте их.

10
ответ дан 29 November 2019 в 03:07
поделиться

Никакой путь. Вы смотрите на сумму документации и обучения и маркетинговых расходов, даже MS поднимает.. Вы получите свой ответ. Попытайтесь использовать чужой продукт, и Вы изучите истинное значение документации - я изучаю Godiagrams прямо сейчас..:)
, Таким образом, я могу сказать без сомнения.. НЕ и это никогда не будет.. неважно, как интуитивные пользовательские интерфейсы добираются.. вне определенного размера Вы будете нуждаться в помощи и обучение. , Но путем понимания пользователя и что он должен быть сделан, Вы могли разработать его таким образом, что время, он должен изучить систему, чтобы сделать его стандартные задачи, минимально.

2
ответ дан 29 November 2019 в 03:07
поделиться

Я включал контекстно-зависимые экранные демонстрации в свои приложения. Я нашел, что это помогает нетехническим пользователям схватить приложение быстро, не прося живую справку.

1
ответ дан 29 November 2019 в 03:07
поделиться

Книги Идиота/Макета должны вполне успевать. Вообразите, была ли стандартная справка приложения так же хороша как те книги. Стандартная справка F1 для большого количества приложений просто ужасна.

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

0
ответ дан 29 November 2019 в 03:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: