Ці можна захоўваць літарна-лічбавыя значэння ў тып дадзеных INT

Можа літарна-лічбавыя значэння захоўваюцца ў тыпе дадзеных INT або нам патрэбны сымбаль, каб захаваць яго?

0
Першапачаткова, 50% гэтае пытанне была пазнака і дзякуй.
дададзена аўтар Lightness Races in Orbit, крыніца

4 адказы

Alphanumeric values are not values. They are numbers like everything else, but they follow a specified mapping numer -> character.

Напрыклад, сімвал «А» 65 у адпаведнасці з кадаваннем ASCII. Адзінае адрозненне заключаецца ў тым, як вы ставіцеся да іх: калі разглядаць іх як лікі, то раздрукуйце іх як лікі, у адваротным выпадку вы друкуеце іх кадыроўку. А сімвал тып дадзеных з'яўляецца толькі Int які мае памер 1 байт. Проста таму, што 1 байт дастаткова, каб захоўваць усю пашыраную табліцу ASCII. Там няма ніякага рэальнага «сімвал» тыпу дадзеных.

Кароткі адказ: так.

7
дададзена
вы прабачце, забыўся зрабіць выснову, што :)
дададзена аўтар Jack, крыніца
Так, гэта было б дзіўна, але я мяркую, што гэта ўжо адбылося дзесьці ў свеце :)
дададзена аўтар Jack, крыніца
@Ignacio: вы аддаеце перавагу высокі ASCII? або EASCII? ці што?
дададзена аўтар Jack, крыніца
ой, ну, вы маеце рацыю, але гэта зрабіла б яго адкрыць яшчэ адно пытанне, каб растлумачыць, што такое «однобайтная набор сымбаляў" .. не робяць яго складаным :)
дададзена аўтар Jack, крыніца
Так, э-э .. «так».
дададзена аўтар Lightness Races in Orbit, крыніца
"Пашыранага ASCII" <я> Argh.
дададзена аўтар Ignacio Vazquez-Abrams, крыніца
«Любы адзін байт набор сімвалаў (напрыклад, CP437, Lat-1 і г.д.)»
дададзена аўтар Ignacio Vazquez-Abrams, крыніца
Калі ён не спрабуе нешта мудрагелістае, як , калі (VAL == «A») ... яшчэ калі (значэнне == 65) , мяркуючы, што ён можа захоўваць і літары і лічбы «значэнне» у <кода > Int і думаю, што яны дзве розныя рэчы.
дададзена аўтар AusCBloke, крыніца
Ха-ха, ды я не здзіўлюся.
дададзена аўтар AusCBloke, крыніца

Так, вы можаце захоўваць сімвалы Int тыпы дадзеных. А сімвал гэта проста цэлалікавых тып дадзеных як Int , але з больш вузкім дыяпазонам гарантаванай.

На самай справе, гэта часам, што трэба зрабіць, каб выкарыстоўваць Int , а не сімвал , каб захаваць характар ​​- напрыклад, калі вы чытаеце сімвалы з файла, вы можаце выкарыстоўваць:

int c;

while ((c = getc(file)) != EOF)
{
    /* Do something with c */

У гэтым выпадку, вы павінны выкарыстоўваць Int , а не сімвал для тыпу з для таго, каб мець магчымасць адрозніваць EOF ад сапраўднага характару.

2
дададзена

сімвал ўяўляе сабой адзін байт тыпу дадзеных (і, такім чынам, можа мець значэнне ад 0 да 255).

It has a number -> char mappping.

#include 

int main() {
  char c = 'a';
  int n = c;
  printf("Character '%c' stored in int as %d\n", c, n);
}

выхад:

Character 'a' stored in int as 97
1
дададзена

Вы можаце захоўваць сімвалы Int тыпы дадзеных. А сімвал ўяўляе сабой цэлалікавых тып дадзеных, як Int , якія могуць быць захаваны ў адным байце. <Код> сімвал тып дадзеных можа захоўваць набор ASCII-сімвалаў (256 знакаў). Адлюстравання адлюстравання ASCII лік у дыяпазоне 0-255 персанажаў. Так як сімвал з'яўляецца цэлалікавых тып дадзеных, вы можаце захаваць нумар, звязаны з характарам ў Int праз аперацыі прысвойвання

1
дададзена