|
2016/5/30 ¤U¤È 05:33:15
¦b»¡©ú§ÚªººÃ°Ý«e¡A¥ý¥æ¥N¤@¤U³oӺðݪº¥Ñ¨Ó¡C
§Ú¦b¤u§@¤W±`»Ýn±µÄ²¡A©Î×§ï«e¤Hªºµ{¦¡¡A³o¨Çµ{¦¡³q±`³£¦³¤@©wªº¦~·³¡C ³o¨Çµ{¦¡¸Ì·|§â¦r¦êÃþ«¬ªºÅܼƫŧi¦¨ unsigned char¡A¨Ò¦p¡G
unsigned char *str1; unsigned char *str2[32];
¬Æ¦Ü¬O°Ñ¼Æªº¶Ç»¼¤]¬O¡G
unsigned char* str_func(unsigned char *str);
µ{¦¡¸Ì±³q½g¬O³o¼Ëªº¼gªk¡A¦]¬°³o©M C »y¨¥¹w³]ªº¦r¦ê«¬ºA¤£¤@¼Ë¡A©Ò¥H¥Î°_¨Ó·|¹J¨ì¤@¤j°ïÃö©ó«¬ºA¤£¬Û²ÅªºÄµ§i¡A ¬°¤F¸Ñ¨M³o¨Çĵ§i¡A©ó¬Oµ{¦¡¸Ì³q½g¥i¥H¨£¨ì³o¼Ëªº¼gªk¡G
fopen((char*)"filename", "r"); unsigned char* strres = str_func((unsigned char*)"Hello");
¥Î°_¨Ó«Ü³Â·Ð¡A°£¤F±j¨îÂ૬·|Åý«Ü¦h®ÉÔ¯u¥¿ªº«¬ºA½Ä¬ð³QÁôÂð_¨Ó¤§¥~¡AÁÙÅý±ÔzÅܫܪø¡A¼g°_¨Ó²Ö¡C ¬Æ¦Ü«Ü¦h¦a¤èªº¦r¦ê«þ¨©°®¯Ü´N¤£¥Î strcpy ¦Ó¨Ï¥Î memcpy¡C §óºë±mªº¬O¡A¥i¯à¦³¦ì«e½ú¬°¤F¤@¦¸¸Ñ¨M·í®Éªº°ÝÃD¡A³ºµMÁ٫ŧi¤F¥¨¶°¡G
#define strlen(str) strlen((char*)str) #define strcmp(str1,str2) strcmp((char*)str1, (char*)str2)
³o¨Çºë±mªºªí²{¬Ý±o§Ú¥u¯à»¡¬O¹Ä¬°Æ[¤î¡I °_ªì¦b²Ä¤@¥÷µ{¦¡¨£¨ì unsigned char ªº¼gªk®É¡Aı±o·íªì¼g³oµ{¦¡ªº¤H¤@©w¬OÓ¥Õ·ö¡A ¦]¬°§Úı±o³oºØ¼gªk¨S¦³ÀuÂI¡A¥u¦³µ¹¦Û¤v§ä³Â·Ð¦Ó¤w¡F ¦ý«á¨Ó±µ¤G³s¤T¬Ý¨ì¡A¥un¬O¦Ñ®×¤l´X¥G³£¬O³o¼Ëªº¼gªk¡A¬Æ¦Ü¤£¦P¤½¥qªºµ{¦¡½X¤]¬O¡C ©ó¬O§Ú¦b·Q³oºØ¨Ï¥Î unsigned char ¦Ó¤£¥Î char ªº¼gªk¬O¤£¬O¦³¤°»ò¾ú¥vªº¥Ñ¨Ó©Î¨å¬G¡A ·Q½Ðª©¤Wª¾¹D³o¨Ç¨Æ±¡ªº¦Ñ«e½ú¯à»¡ÂI¬G¨Æ¡A¥H¸Ñ§Ú¤ß¤¤¤§ºÃ´b¡C
·PÁ¤j®a¡I
|
|
|
2016/5/30 ¤U¤È 06:35:29
char ¬O -128~127 unsigned char ¬O 0~255 ¦Óextend ascii ¬O 0~255 ©Ò¥H¦s¦r¦ê¥Î unsigned char§Úı±o¤£©_©Ç§r
|
|
|
2016/5/30 ¤U¤È 09:05:11
memcpy is safer than strcpy
|
|
|
2016/5/30 ¤U¤È 11:14:01
·|¥Îunsigned charªº®É¾÷¥Dn¦³¨âºØ¡A¤@ºØ¬On¥Î¤@Óbyte¦s¼ÆÈ0-255¡A¤£·Q¦³t¼Æ¡C¨Ò¦pµ´¤j³¡¥÷ªº¥[±K©Î½s½X¹Bºâ¡A¹³¬OMD5¡BSHA-256¡BCRC32µ¥µ¥¡A¤º³¡³£¬O¨Ï¥Îunsigned char*¡C¥t¤@ºØ«K¬O³B²z«D^¼Æ¦r¤¸¡A¨Ò¦pBIG-5¤¤¤å¦r¦ê¡]³oÓ¾÷²v¤ñ¸û¤j¡^¡C¨Ò¦p¡G
const char* s = "¤@"; // ´«¦¨¼ÆÈ´N¬O0xA4, 0x40 // if (s[0] == 0xA4) { ... };
¬Ý¦ü¥¿½T¡A¨ä¹ê³o¼Ëªº¼gªk¡A±ø¥ó±N·|¥Ã»·¤£¦¨¥ß¡]¦ý·|¦³¤@Ó¦³¸¹¼Æ»PµL¸¹¼Æ²V¥ÎªºÄµ§i°T®§¡^¡C¦]s[0]¬O¦³¸¹¼Æ¡A©Ò¥H0xA0·|³Q¬Ý¦¨t¼Æ¡A¥H32¦ì¤¸µL¸¹¼ÆÈ¨Ó¬Ý¡A«K¬O0xFFFFFFA4¡A¸ò0x000000A4¬O¤£·|¬Ûµ¥ªº¡C¦³¸gÅ窺programmer·|°O±o¦b«e±¥[Óunsigned char¨ÓÁ×§K¦¹¤@°ÝÃD¡G
if ((unsigned char)s[0] == 0xA4) { ... };
¦ý¤£¬O¨CÓprogrammer³£¨º»ò²Ó¤ß¡C©ó¬O±N¦r¦ê«Å§i¦¨unsigned char*¡A«K¥i¥HÁ×§K¦¹¤@»~¥Î±¡ªp¡C¦nÃaÃøÁ¿¡A¦ý¤@¯ë¬O§Q¤j©ó¹ú¡CY¬O³B²z¯Â^¼Æ¦r¦ê¡A«K¨S¥²n«Å§i¦¨unsigned char*¤F¡C
|
|
|
2016/5/30 ¤U¤È 11:44:17
>char ¬O -128~127
¤£§¹¥þ¥¿½T. ¦b C ¤Î C++ »y¨¥¸Ì, char, signed char, ¤Î unsigned char ¬O¤TÓ¤£¦PªºÃþ«¬. ³o¦³§O©ó¨ä¥¦¾ã¼ÆÃþ«¬.
C++ 3.9.1 Fundamental types ²Ä¤@¬q:
"... Characters can be explicitly declared unsigned or signed. Plain char, signed char, and unsigned char are three distinct types."
"... In any particular implementation, a plain char object can take on either the same values as a signed char or an unsigned char; which one is implementation-defined."
©Ò¥H 'char' ªº½d³ò¥i¥H¬O signed char ªº½d³ò, ¤]¥i¥H¬O unsigned char ªº½d³ò. ³o¤]¬OÀYÀÉ <limits.h> ¤º¦³CHAR_MIN, CHAR_MAX, SCHAR_MIN, SCHAR_MAX, ¤Î UCHAR_MAX µ¥©w¸qªºì¦]. µ{¦¡û¤]¥i¥H¥Î³o¨Ç©w¸q¨Ó§PÂ_Ó§O½s;¹¸Ì char ªº¨úȽd³ò.
¦Ü©ó¼Ó¥D©Ò»¡ªºµ{¦¡, ¤]³\n¬Ý·í®Éªº½s;¹¤Î¹ï¶H¥¥x¬O§_¾ÉP¤F³oÓ»Ýn. ¦³®ÉÔ¤]³\¬O³Ì©³¤Uªº¬Y¤@ӥΪkªº»Ýn, ¼vÅT¤F¤W¼h©I¥s³oÓ©³¼h¨ç¦¡ªº¼gªk, µM«á¤@¼h¼hªº¼vÅT¤W¥h. ·íµM¤]¤£±Æ°£·í®Éµ{¦¡ûªºµ{«×°ÝÃD.
|
|
|
2016/6/1 ¤W¤È 07:41:05
ÁÂÁ¤j®aªº¦^µª¡A ©Ò¥H¾ã²z¤@¤U·|¨Ï¥Î unsigned char ªº¦³¯q²z¥Ñ¡A³q±`¬O¦]¬°»Ýn°µ¥[¸Ñ±Kµ¥ÅÜ´«³B²z¡B©Î«D¶Ç²Î ASCII ¦r¤¸³B²zªºÃö«Y§a¡I
¦Ñ¹ê»¡§Ú¤@¶}©l¥H¬°³o¬OÃþ¦ü¹³ const ³oºØ¦b K&R C ®É¥N¦]¬°»yªk¦]¯À©Ò³y¦¨ªº¡A¦ý²{¦b¬Ý°_¨Ó¦n¹³¬O¦]¬°¤è«K¬YºØ¯S©w¸ê®Æ³B²zªºÃö«Y¡C ¦pªG¬O³o¼Ëªº¸Ü¡A§Úı±oÀ³¸Ón¦b¬Y¤@Ó¾A·íªº¼h¸Ì¬°¦r¦ê°µÂ૬¡A¨Ï±o¥u¦³¦b»Ýnªº¬Y¨Ç©³¼h¤~¥Î unsigned char ³B²z¦r¦ê¡F ¦Ó¤£¬OÅý unsigned char µLªºÂX´²¨ì©Ò¦³¦a¤è¡Aµ¹¤j³¡¤Àªº¤@¯ë¨Ï¥Î±a¨Ó¤£«K¡C ¤×¨ä¬OÁÙ¦³¤@®a¤½¥qµoµ¹§Ú̪º API ¸Ìªº¦r¦ê°Ñ¼Æ³ºµM¤]¬O unsigned char¡A³£¤w¸g¨ì³»¼h¤¶±¼h¤FC¡I
¦Ü©ó signed ©M unsigned ªºÄ³ÃD¡A§Ú¤§«e¦n¹³¦³¬Ý¹L¡AC »y¨¥¤¤°£¤F char ¥H¥~ªº©Ò¦³¾ã¼Æ³£Áô§t¬° signed ªº¡A¥u¦³ char ¤ñ¸û¯S§O¡C char Y¥¼¥[¤W²Å¸¹×¹¢«h¨ä¥i¯à¬° signed ©Î unsigned¡A¥Ñ½s;¹¨M©w¡C §Ú¥H«e¨Ï¥Î C++ Builder 6 ªº®ÉÔ°O±oÁÙ¦³³o»ò¤@Ó½sĶ¿ï¶µ¬O¥Î¨Ó¿ï¾Ün½s;¹±N char Áô§t¬°¦³¸¹ÁÙ¬OµL¸¹©O¡I
|
|
|
2016/6/1 ¤U¤È 03:42:20
this is regardless of encryption and crypt-ion .
|
|
|
2016/6/2 ¤W¤È 11:40:21
>©Ò¥H¾ã²z¤@¤U·|¨Ï¥Î unsigned char ªº¦³¯q²z¥Ñ¡A³q±`¬O¦]¬°»Ýn°µ¥[¸Ñ±Kµ¥ÅÜ´«³B²z¡B©Î«D¶Ç²Î ASCII ¦r¤¸³B²zªºÃö«Y§a¡I «Ü¦h 8 bits CPU¥»¨¹Bºâsigned«¬ºAªº¯à¤O«Ü®z¡C¥Îunsigned char«¬ºA®Ä²v°ª¤]¸`¬Ùµ{¦¡½X¡C
|
|
|
2016/6/3 ¤U¤È 12:25:48
>>©Ò¥H¾ã²z¤@¤U·|¨Ï¥Î unsigned char ªº¦³¯q²z¥Ñ¡A³q±`¬O¦]¬°»Ýn°µ¥[¸Ñ±Kµ¥ÅÜ´«³B²z¡B©Î«D¶Ç²Î ASCII ¦r¤¸³B²zªºÃö«Y§a¡I >«Ü¦h 8 bits CPU¥»¨¹Bºâsigned«¬ºAªº¯à¤O«Ü®z¡C¥Îunsigned char«¬ºA®Ä²v°ª¤]¸`¬Ùµ{¦¡½X¡C
½Ð°Ý²{¦b¹ï©ó¤@¯ë§Î§O(char int short long) ¦û¥Î°O¾ÐÅéªÅ¶¡ªº©w¸q¬O«ç¼Ë
|
|
|
2016/6/3 ¤U¤È 01:25:19
§Ú·Q coco ¤jªº·N«ä¬O¦³¨Ç CPU ¨S¦³¯S§O¬°¦³¸¹¼Æªºpºâ°µ¨¬°÷ªºÀu¤Æ¡A©Ò¥H¦b¨S¦³t¸¹°ÝÃDªºpºâ¤W¡A§â«¬ºA©w¸q¬°µL¸¹¾ã¼Æ·|ºâ¤ñ¸û§Ö¡C ·íµM¡A¤]¦³¥t¤@§å CPU ±¡ªp¬Û¤Ï¡A¨Ï¨ä¦³¸¹¼Æ·|ºâ±o¤ñµL¸¹¼Æ§Ö¡C §Ú°O±o´¿¸g¦³¤å³¹¦b°Q½×³o¥ó¨Æ±¡¡C
¦ý³o¨Ç³£¬O»Ppºâ®Ä²v¦³ÃöªºÄ³ÃD¡A©MÅܼƦû¥Î°O¾ÐÅéªÅ¶¡ªºÄ³ÃDµLÃö³á¡I ¹ï©ó¤@¯ë«¬§O¦û¥ÎªÅ¶¡ªº©w¸q¡AC »y¨¥À³¸Ó±q¨Ó¨S¦³¹ï¨ä°µ¹L§ïÅÜ¡F ¦pªG§An°Ýªº¬O¹³ int À³¸Ó¦û¥Î½T¤Á¦h¤ÖÓӦ줸²Õ³o¼Ëªº°ÝÃDªº¸Ü¡Aµª®×¬O¤£©T©w¡A¨ä¥Ñ¨t²Î¥»O¨M©w¡C
|
|
|
2016/6/3 ¤U¤È 02:09:24
https://msdn.microsoft.com/en-us/library/s3f49ktz.aspx https://www.macs.hw.ac.uk/~pjbk/pathways/cpp2/node7.html https://developer.mbed.org/handbook/C-Data-Types http://stackoverflow.com/questions/7180196/size-of-integer-in-c
|
|
|
2016/6/3 ¤U¤È 03:05:41
>¹ï©ó¤@¯ë«¬§O¦û¥ÎªÅ¶¡ªº©w¸q¡AC »y¨¥À³¸Ó±q¨Ó¨S¦³¹ï¨ä°µ¹L§ïÅÜ¡F >¦pªG§An°Ýªº¬O¹³ int À³¸Ó¦û¥Î½T¤Á¦h¤ÖÓӦ줸²Õ³o¼Ëªº°ÝÃDªº¸Ü¡Aµª®×¬O¤£©T©w¡A¨ä¥Ñ¨t²Î¥»O¨M©w¡C
½T©wÁÙ¬O¤£©T©w¶Ü¡H¦³¨S¦³¤ñ¸ûªÖ©wªº¸ê®Æ¨Ó·½¡A²z¥Ñ¬Oºô¸ô®É¥N¡A¨t²Î¥»O¨M©w¤£¦P¤j¤p«ÜÃø¤£¥Xºl
|
|
|
2016/6/3 ¤U¤È 03:24:16
https://msdn.microsoft.com/en-us/library/296az74e.aspx native file depends on specific platform. it is a nature issue of compiler.
|
|
|
2016/6/3 ¤U¤È 03:40:00
> ½T©wÁÙ¬O¤£©T©w¶Ü¡H
¬Oªº¡C
> ¦³¨S¦³¤ñ¸ûªÖ©wªº¸ê®Æ¨Ó·½¡A
¨S¦³¡A¤]³\¦³¨ä¥L¤H¥i¥H´£¨Ñ¡A¦]¬°§Ú¤v¸g§Ñ¤F±qþ¬Ý¨Óªº¤F¡I
> ²z¥Ñ¬Oºô¸ô®É¥N¡A¨t²Î¥»O¨M©w¤£¦P¤j¤p«ÜÃø¤£¥Xºl
¦pªG§A»Ýn¨Ï¥Î©T©w¤j¤pªºÅܼơA½Ð§ï¥Î¹³¬O uint32_t¡Bint64_t ªº©µ¦ù«¬ºA¡A©w¸q¦b stdint.h ¸Ì¡A¬O±q C99 ¥[¤Jªº¡C
|
|
|
2016/6/3 ¤U¤È 03:41:11
http://www.cplusplus.com/reference/cstdint/
|
|
|
2016/6/3 ¤U¤È 03:45:38
https://en.wikipedia.org/wiki/C_data_types .... "The actual size of integer types varies by implementation. The standard only requires size relations between the data types and minimum sizes for each data type:" .... cite above site
|
|
|
2016/6/3 ¤U¤È 05:29:53
>> ½T©wÁÙ¬O¤£©T©w¶Ü¡H > >¬Oªº¡C > >> ¦³¨S¦³¤ñ¸ûªÖ©wªº¸ê®Æ¨Ó·½¡A > >¨S¦³¡A¤]³\¦³¨ä¥L¤H¥i¥H´£¨Ñ¡A¦]¬°§Ú¤v¸g§Ñ¤F±qþ¬Ý¨Óªº¤F¡I > >> ²z¥Ñ¬Oºô¸ô®É¥N¡A¨t²Î¥»O¨M©w¤£¦P¤j¤p«ÜÃø¤£¥Xºl > >¦pªG§A»Ýn¨Ï¥Î©T©w¤j¤pªºÅܼơA½Ð§ï¥Î¹³¬O uint32_t¡Bint64_t ªº©µ¦ù«¬ºA¡A©w¸q¦b stdint.h ¸Ì¡A¬O±q C99 ¥[¤Jªº¡C
¬°¤F¦]À³ºô¸ô®É¥N¡A¬O¤£¬OÀ³¸Ó©ñ±ó int long ... µ¥¤£©T©w¤j¤pªº§Î§O¡AY¤£¶·©ñ±ó²z¥Ñ¬O¤°»ò
|
|
|
2016/6/4 ¤W¤È 12:08:37
> ¬°¤F¦]À³ºô¸ô®É¥N¡A¬O¤£¬OÀ³¸Ó©ñ±ó int long ... µ¥¤£©T©w¤j¤pªº§Î§O¡AY¤£¶·©ñ±ó²z¥Ñ¬O¤°»ò
·íµM¤£¸Ó©ñ±ó¡A§Y¨Ï¬Oºô¸ô®É¥N¡A¼gµ{¦¡¤]¤£·|¥u¦³ºô¸ôµ{¦¡¥i¥H¼g¡F¬Æ¦Ü§Y¨Ï¬Oºô¸ôµ{¦¡¡A¤]¤£¬O¥u¦³¸ê®Æ¥æ´«¡C«Ü¦h®ÉÔ§ÚÌÁÙ¦³¤@¯ë¥Î³~ªºpºâ¡C
Á|¨Ò¨Ó»¡¡A·í§Ún°µ¤@¨Ç¼Æ¦rªºpºâ®É¡A§Ú¨ä¹ê¤£¬O«Ü¦b¥G¼Æ¦rªº«¬ºA¨ì©³¦û¥Î¦h¤Ö¦ì¤¸²Õ¡A¥un¤£¬O¤p¨ì·|·¸¥X´N¦n¤F¡C ¦ý¬O¤£¦P¥»O¤W®Ä²v³Ì¨Îªº¼ÆÈªø«×©¹©¹¤£ºÉ¬Û¦P¡A¤ñ¦p»¡ A ¥»O¹Bºâ³Ì§Öªº¬O 16 ¦ì¤¸¾ã¼Æ¡BB ¥»O¹Bºâ³Ì§Öªº¬O 32 ¦ì¤¸¾ã¼Æ¡BC ¥»O¹Bºâ³Ì§Öªº¬O 8 ¦ì¤¸¾ã¼Æ¡A¨º§Úªºµ{¦¡½X®³¨ì¤£¦Pªº¥»O¤W½sͰõ¦æ«e´Nn¤£¹½¨ä·Ðªº×§ï§Ú©Ò¦³ªºÅܼƫ¬ºA©w¸q¡A¥H²Å¦X·í¦a¥»O³Ì¾A·íªº¤Ø¤o¡C
¦]¦¹¦³¤@ºØ°¶¤jªºÃþ«¬³Qµo©ú¥X¨Ó¡A§Y¬°¤£©wªøÅܼơA³oºØÅܼƦb¤£¦P¥»O¤Wªº¤Ø¤o¤£©w¬Û¦P¡C¦]¦¹§Úªºµ{¦¡½X¥i¥H¨Ï¥Î³oºØ«¬ºA¨Ó©w¸qÅܼơA¦Ó¤£»ÝnÀHªÌ°õ¦æ¥»O¤@§ï¦A§ï¡A¦]¬°½s;¹·|À°§Ú°µ³o¥ó¨Æ¡C¥ç§Y¡A¾ã¼ÆÅܼƦb A ¥»O¤W¥i¯à¬° 16 ¦ì¤¸ªø¡B¦b B ¥»O¤W¬° 32 ¦ì¤¸¡B¨ì¤F C ¥»O¤SÅܦ¨ 8 ¦ì¤¸¡CÁ`¤§¡A§Ú¤£»Ýn¦A¦nºë¯«©ë¼Ê©ó¨ì©³n¿ï¥Î¦h¤jªºÅܼƤW¡C
C »y¨¥ªº°ò¥»ÅܼƩw¸q´N¬O«Ø¥ß¦b³o¼ËªºÃö«Y¤W²£¥Í¥X¨Óªº¡A·í§Ún¤@Ó´¶³qªº¾ã¼Æ®É´N«Å§i int¡F·í§ÚºâªºªF¦è¼Æ¦r¥i¯à·|¤j¤@ÂI¡A©È·|·¸¥X¡A´N«Å§iªø¤@ÂIªº long¡F·í§Úºâªº¼Æ¦r«Ü¤p¡A§Æ±æ¬ÙÂIªÅ¶¡®É¥i¥H¨Ï¥Îµu¤@ÂIªº short¡C³o¼Ë¾ãÓÅܼƫ¬ºA³£¬O«Ø¥ß¦b¬Û¹ïªº¤j¤p¤W¡A¨ä¹ê»Úªºªø«×¥²¶·¦b½sͮɤ~·|ª¾¹D¡A¨Æ¹ê¤W¤j³¡¥÷®ÉÔ§ÚÌÀ³¸Ó¤]¤£»Ýn¦b·N¥¦¨ì©³¦û¦h¤ÖªÅ¶¡¡C
Ãþ¦üªº²{¶HÁÙ¥X²{¦b¸ê®Æµ²ºc¤W±¡A¤£¦Pªº¹ï»ô¼Ò¦¡·|¾ÉP¦P¤@Ó¸ê®Æµ²ºc³Ì²×ªº¤j¤p¤£¬Û¦P¡C
Á`¤§¡A©T©wªø©M¤£©wªøªº«¬ºA¦U¦³Àu¯Ê¡A¦U¦³¾A¦XªºÀ³¥Î¡C¦bºô¸ô¸ê®Æ©ÎÀÉ®×¸ê®Æ¥æ´«ªº³õ¦X¡A©T©wªøÅܼƯàÁ×§K¹³¤£©wªøÅܼƱa¨Óªº¸ê®Æ¿ù¶Ã°ÝÃD¡F¦ý¦bpºâ³õ¦X¤W¡A¨Ï¥Î©T©wªøÅܼƫo¥i¯àµLªkµo¦^¥»O¤Wªº³Ì¨Îpºâ®Ä¯à¡C
|
|
|
2016/6/4 ¤W¤È 01:01:27
>½Ð°Ý²{¦b¹ï©ó¤@¯ë§Î§O(char int short long) ¦û¥Î°O¾ÐÅéªÅ¶¡ªº©w¸q¬O«ç¼Ë ³oºØ©w¸q¤£·|§ïÅܪº¡A§ïÅܤF¬Û®e©Ê´N±Y¼ì¤F¡I ¬°¤°»ò·íªì¹ï³o¨Ç§Î§Oªº¼e«×¤£©T©w¡H ¦]¬°¦³¨ÇCPU¹Bºâ¸ê®Æ¼e«×¤£¤@©w¡C §Ú»¡ªº¨Ã¤£¬O¦p¦Px86ªº8¦ì¤¸¡A16¦ì¤¸¡A32¦ì¤¸©Î64¦ìªº¤£¦P¡C x86¤£½×¬O´X¦ì¤¸¡A³£ÁÙ¬O¤@Ó¦a§}ªº¸ê®Æ¹ïÀ³¤@Ó8¦ì¤¸¡C ¦ý¦³¨ÇCPU¡A¨Ò¦pTIªºDSP¦³16¦ì¤¸¡A32¦ì¤¸¡C¥¦Ì¬O¤@Ó¦a§}¹ïÀ³¤@Ó16bits©Î32bits¸ê®Æ¡C (Á|Ó¨Ò¤l¡A¦a§}0000¦s©ñ0x1234¡A¦Ó¦a§}0001«h¦s©ñ0x5678) ¦pªGC/C++©T©w¤F§Î§O¼e«×¡A¹ï³o¨ÇCPU³Â·Ð´N¤j¤F¡I
¹ï©ó¤£¦P¨t²Î¥æ´«¸ê°T¡A½T©wªº¸ê®Æ¼e«×¬O¦³¨ä¥²n¨S¦³¿ù¡C¦ý³o«Ü®e©ö¸g¥Ñmacro©w¸q¨Ó¸Ñ¨M¡C
|
|
|
2016/6/4 ¤W¤È 09:25:37
ANSI c didn't strictly define size of elementary data type.
|
|
|
2016/6/4 ¤W¤È 11:29:33
>½Ð°Ý²{¦b¹ï©ó¤@¯ë§Î§O(char int short long) ¦û¥Î°O¾ÐÅéªÅ¶¡ªº©w¸q¬O«ç¼Ë
»y¨¥¼Ð·Ç¨S¦³©w¸q, ¦]¬°¦U¨t²Î¥¥x¬[ºc¤£¦P, ¤]¤£¥i¯à©w¸q.
ÁöµM¦p¦¹, ¦ý§@¬°µ{¦¡»y¨¥, ¥¦ÁÙ¬O¦³¤@¨Ç³W½d¤Î³Ì§Cn¨Dªº, ¤ñ¤è»¡:
- ¦U¾ã¼ÆÃþ«¬ªº®e¶qÃö«Y¬O: ¡@¡@¡@signed char <= short <= int <= long <= long long ¡@¡@¡@float <= double <= long double ¡@¤]´N¬O»¡, ¥ªÃ䪺Ãþ«¬¬O¥kÃ䪺 subset.
- signed Ãþ«¬ªº¥¿È¥²¶·¬O¦PÃþ«¬ unsigned ªº subrange. ¡@¤ñ¤è»¡, unsigned int ªº½d³ò¥²¶·¥]¬A int ªº¥¿¼ÆÈªº½d³ò.
- sizeof(char) == 1. - char ¥²¶·¯à°÷Àx¦s°ò¥»¦r¶° (character set), ¦Ó¥B¤£¯à¬OtÈ. ¡@©Ò¥H, ³oªí¥Ü char ¥²¶·¦Ü¤Ö¬O 7 Ӧ줸 (0~127. 7 value-bits). ¦ý¼Ð·Ç¤å¥ó¸Ìªºªþµù³¡¥÷ Implementation Limits ¦³³W©w CHAR_BIT ¦Ü¤Ö¬O 8.
- ³W©w¦UÃþ«¬ *_MIN/*_MAX ªºµ´¹ïÈ, ¤£¯à¤p©ó¬Y½d³ò, ¤ñ¤è»¡: ¡@¡@SCHAR_MIN/MAX : -127/+127 ¡@¡@UCHAR_MAX : 255 ¡@¡@SHRT_MIN/MAX : -32767/+32767 ¡@¡@USHRT_MAX : 65535 ¡@¡@INT_MIN/MAX : -32767/+32767 ¡@¡@UINT_MAX : 65535 ¡@¡@LONG_MIN/MAX : -2147483647/+2147483647 ¡@¡@ULONG_MAX : 4294967295
|
|
|
2016/6/4 ¤W¤È 11:39:50
http://stackoverflow.com/questions/8010040/why-is-schar-min-defined-as-127-in-c99 http://tigcc.ticalc.org/doc/limits.html
|
|
|
2016/6/4 ¤U¤È 12:29:01
>¹ï©ó¤£¦P¨t²Î¥æ´«¸ê°T¡A½T©wªº¸ê®Æ¼e«×¬O¦³¨ä¥²n¨S¦³¿ù¡C¦ý³o«Ü®e©ö¸g¥Ñmacro©w¸q¨Ó¸Ñ¨M¡C
§A¬O»¡¥Î macro ©T©w§Î§O¤j¤p¡A©ñ±ó¤£©T©w¤j¤pªº¤@¯ë§Î§O¬O¶Ü¡H ³o¼Ë§Ú´N·d¤£²M·¡§A¥ß³õ¬O¤ä«ùÁÙ¬O¤Ï¹ï
|
|
|
2016/6/4 ¤U¤È 04:37:20
>http://stackoverflow.com/questions/8010040/why-is-schar-min-defined-as-127-in-c99 >http://tigcc.ticalc.org/doc/limits.html >
ozzy123 §Aµ¹ªº¸ê®Æ³£¬O©T©w¤j¤p¡A¬O¼Ð·ÇÁÙ¬O¥u¬YÓ¥¥x¦Ó¤w
|
|
|
2016/6/4 ¤U¤È 04:52:04
so this is answer
|
|
|
2016/6/5 ¤W¤È 10:33:44
¦] c++ ªº§Î§O¤j¤p¤£©T©w¡A©Ò¥HYn¥Î¦b¸ó¥¥x¡A¥B©¼¦¹¶¡¸ê®Æ¤]·|¥æ´«¡A¤@¯ëªº°µªkÀ³¸Ó¥Î¤¤Ä~Àɪº¤èªk¡A§Y§â¤@¯ë§Î§O¸ê®ÆÂà´«¦¨¤¤Ä~¸ê®Æ¡A³o¤¤Ä~¸ê®Æ®³¨ì¥t¤@¥¥x¡A¦AÂà´«(ÁÙì)¦¨ì¨Ó§Î§Oªº¸ê®Æ¡A¨º»ò´N¥i¥H¤£¦b¥G§Î§O¦b¦U¥¥x¤j¤pªº¤£¦P¤F
|
|
|
2016/6/5 ¤U¤È 09:01:20
>- ³W©w¦UÃþ«¬ *_MIN/*_MAX ªºµ´¹ïÈ, ¤£¯à¤p©ó¬Y½d³ò, ¤ñ¤è»¡: >¡@¡@SCHAR_MIN/MAX : -127/+127 >¡@¡@UCHAR_MAX : 255 >¡@¡@SHRT_MIN/MAX : -32767/+32767 >¡@¡@USHRT_MAX : 65535 >¡@¡@INT_MIN/MAX : -32767/+32767 >¡@¡@UINT_MAX : 65535 >¡@¡@LONG_MIN/MAX : -2147483647/+2147483647 >¡@¡@ULONG_MAX : 4294967295
¹ï©ó·¸¦ìªº³B²z¡A´N¥ÎR¤j´£¨Ñªº³Ì¤p½d³ò©w¸q§@¬°³Ì¤j½d³ò¹LÂoÀˬd
|
|
|
2016/6/5 ¤U¤È 09:04:34
>>¹ï©ó¤£¦P¨t²Î¥æ´«¸ê°T¡A½T©wªº¸ê®Æ¼e«×¬O¦³¨ä¥²n¨S¦³¿ù¡C¦ý³o«Ü®e©ö¸g¥Ñmacro©w¸q¨Ó¸Ñ¨M¡C >§A¬O»¡¥Î macro ©T©w§Î§O¤j¤p¡A©ñ±ó¤£©T©w¤j¤pªº¤@¯ë§Î§O¬O¶Ü¡H ¦³¦³»¡©ñ±ó¶Ü¡H §Ú»¡¡Achar,int...Y©T©w¤j¤p¡A°£¤F¬Û®e©Ê°ÝÃD¥~¡C¤]·|¦b¬Y¨ÇCPU¤W³y¦¨¹Bºâ®Ä²v¤W«Ü¤jªº§xÂZ¡C ¨Ò¦pTMS 320C25ªº¸ê®Æ¬O16 bits¡A¦pªG§âchar©w¸q¦¨8 bitsªº©T©w¼e«×¡C ¨º»ò char a,b; ½s;¹§â a¤À°t¦b (¦a§})0x1200ªºbit0~bit7¡Fb¤À°t¦b(¦a§})0x1200ªºbit8~bit15 ½Ð°Ý &a©Î&b¸Óµ¹§A«ç»ò¼Ëªº¦a§}¡H §Ú»¡¥i¥H¥Îmacro©T©w¤j¤p¡A¤£¬On©ñ±óì¨Óªº«¬§O(¤W±ªº¨Ò¤l¡A¤w©ú¥ÕÅã¥Ü¤£¯à©ñ±ó)¡C ¦Ó¬O¸ó¸Ë¸m¸ê®Æ¥æ´«¡A©ú½Tªº¸ê®Æ¼e«×¦³¨ä»Ýn¡C ¦ý³oºØ»Ýn¾ãÓµ{¦¡¬O§½³¡©Êªº¡A¥i¥H¨Ï¥Îmacro¸Ñ¨M
>ozzy123 §Aµ¹ªº¸ê®Æ³£¬O©T©w¤j¤p¡A¬O¼Ð·ÇÁÙ¬O¥u¬YÓ¥¥x¦Ó¤w ¨º¬O¤@¨ÇÅýµ{¦¡¥i¥H¨ú±o©Ò¥Î¥¥x/½s;¹¤@¨Ç«¬§O³Ì¤jÈ¡A³Ì¤pȵ¥¸ê®Æªºmacro¡C ¥¿¦p§Ú»¡ªº¡A(§½³¡)»Ýn©T©w¼e«×ªº«¬§O(©Î¤j¤p)¥»¨Ó´N¥i¥H¨Ï¥Îmacro¨Ó¹F¨ì¡C (¯S§O¥[¤F§½³¡¡A§K±o§A¤S»~¸Ñn¥þ½L©ñ±óì¨Ó¤£©T©wªº©w¸q)
|
|
|
2016/6/6 ¤W¤È 10:46:27
§Úªº·N«ä¬O§A´£¥X¤F macro ´N¬Oµ¥©ó "©ñ±ó¨Ï¥Î" ¤£©T©w¤j¤pªº¤@¯ë§Î§O¡A¥Î macro "´À¥N"
¦Ü©ó¬O§_n§â¤@¯ë§Î§O¯u¥¿±q C++ ®³±¼¡A§Ú·Q·|¦³«Ü¤jªºª§Ä³¡A¦ý§Úı±o¤]µL§«¡A¤£¬O ¦³ uint32_t ³o¼ËªºªF¦è¶Ü¡AYn¥Î macro ±o¦Û¤v¬°¦U¥¥x¼g macro¡AÁÙ¤£¦p¥Î uint32_t
¹ï©ó CPU µwÅé¤Wªº¾A¥Î©Ê¡A´N¯dµ¹½s;¹¥h¶Ë¸£µ¬
ÁÙ¦³¥t¤@ºØ¿ï¾Ü¬O¥Î¤j¼Æ¡A§Î§O·|¦³³oºØ¦h³Â·Ð¬O¦]¦P¼Ë¬O¾ã¼Æ«o¦³«Ü¦hºØ¡AY¥Î¤j¼Æ´N²³æ¦h¤F¡A¤£ºÞ «ç¼Ë¥h¹ê§@¥¦¡A¥un¤¤Ä~¸ê®Æ®æ¦¡²Î¤@´N¦æ¤F
´N³Ñ ®Ä²v»P¹ê¥Î ¤§¶¡ªº¿ï¾Ü¤F¡AY§A§Æ±æ§A¼gªºµ{¦¡½X¯à¦³©ú¤Ñ¡A§A·|¿ï¾Üþ¤@Ãä
|
|
|
2016/6/6 ¤U¤È 01:03:34
> ¹ï©ó CPU µwÅé¤Wªº¾A¥Î©Ê¡A´N¯dµ¹½s;¹¥h¶Ë¸£µ¬
©Ò¥H½s;¹ªº¸Ñ¨M¤èªk´N¬O´£¨Ñ¤@²Õ¤£©wªøªº«¬§O¡C
> ÁÙ¦³¥t¤@ºØ¿ï¾Ü¬O¥Î¤j¼Æ¡K
¨S¿ù¡A¦ý¬O¤j¼Æªº®Ä²v¥i¬O§ó®tªº¡I §A¥Î¹L Matlab ¶Ü¡H§A¥i¥H¸ÕµÛ¥Î¥¦¨Ó¸Ñºâ¬y³õ¡A´N·|ª¾¹D¤°»ò¥s§@®Ä²v®t¤F¡I
> ´N³Ñ ®Ä²v»P¹ê¥Î ¤§¶¡ªº¿ï¾Ü¤F¡AY§A§Æ±æ§A¼gªºµ{¦¡½X¯à¦³©ú¤Ñ¡A§A·|¿ï¾Üþ¤@Ãä
´N¬O¬°¤F¼gµ{¦¡¯à°÷¦³©ú¤Ñ¡A©Ò¥H§Ú¤£·|°¾¦V¥ô¦ó¤@¤è¡C ¦]¨ä¦U¦³©Òªø¡B¦U¦³©Òµu¡F¦U¦³©Ò¥Î¡B¤]¦U¦³©Ò«D¥Î¡C §A¯à§â¥þ»OÆWªº¨®¤l³£²Î¤@¦¨¤p«È³f¨â¥Î¨®¶Ü¡H¨S¦³¤p«È¨®¡B¨S¦³¤j³f¨®¡B¨S¦³³sµ²¨®¡B¤]¨S¦³¤j«È¨®¡A´N¥u¤¹³\¦³¤@ºØ³q¥Îªº¤p«È³f¨®¦b¸ô¤W¦æ¨Ï¡C ¨º»ò¡AÅܼƫ¬ºAªº¹D²z´N¬O¤@¼Ëªº¡C
¥t¥~¡A¦pªG§A·Q¦ù¤J°Q½×¦³Ãö«¬ºAªø«×ªº¨Æ±¡¡A¬O¤£¬O¶}Ó±Mª©¨Ó°Q½×·|§ó¦X¾A©O¡H ¦³¨Ç¤j¤j¦^µªªº¯u¤£¿ù¡A¦ý¦]¬°¤£²Å¥DÃDªºÃö«YÅý§ÚµLªk¤U¤âµ¹¤©¼Ð°OÂI¼Æ¡A¬Æ¬°§xÂZ¡C
|
|
|
2016/6/6 ¤U¤È 01:10:53
>§Úªº·N«ä¬O§A´£¥X¤F macro ´N¬Oµ¥©ó "©ñ±ó¨Ï¥Î" ¤£©T©w¤j¤pªº¤@¯ë§Î§O¡A¥Î macro "´À¥N" ³o¬O¥HüW»\¥þ¡I ¦pªG³o¼Ë±À½×¥i¥H¦¨¥ß¡A ¨º¦pªG¦bVCµ{¦¡¤¤¦]¬°n±µ¦¬¨Ó¦Û¥t¤@Ӹ˸mªºµ²ºc¸ê®Æ¡A©Ò¥H¸Óµ²ºc«Å§i¦¨#pragma pack(1)¨Ó¨ú®øalignment¡C ¨º´Nµ¥©ó©ñ±ó¨Ï¥Îmemory alignment¶Ü¡H ÁÙ¦³¨ä¥¦¤d¦ÊÓµ²ºc¦b¨Ï¥Î¹w³]ªºmemory alignment¡C ¨ú®ø¤F¤@Óµ²ºc¨Ï¥Îalignment¡A¬°¤°»ò´Nµ¥©ó©ñ±óalignment¡H ¨º¨Ï¥Î¤F¤@Óunsigned intµ¥©ó©ñ±ó¨Ï¥Îint¶Ü¡H
>¦Ü©ó¬O§_n§â¤@¯ë§Î§O¯u¥¿±q C++ ®³±¼¡A§Ú·Q·|¦³«Ü¤jªºª§Ä³¡A¦ý§Úı±o¤]µL§«¡A¤£¬O >¦³ uint32_t ³o¼ËªºªF¦è¶Ü¡AYn¥Î macro ±o¦Û¤v¬°¦U¥¥x¼g macro¡AÁÙ¤£¦p¥Î uint32_t uint32_t¤]¬O¥Îtypdef¥h©w¸q¡A¨ä¥\¯à¬Û·í©ó§Úªº¥Îmacro¥h©w¸q¡C ¨âªÌ¬Oµ¥»ùªº¡A¦ýY§An»¡typedef¤ñ¸û¦n¡A§Ú¥i¥HÃÙ¦¨¡C«e±§Ú»¡ªºmacro´N§ï¦¨typedef¡C ¦ý¦P¼Ëªº¹D²z¡D¦³uint32_t¤£ªí¥Ü©ñ±ó¤Fì¨Ó¤£©T©wªº«¬§O¡C¥u¬O¦bµ{¦¡»Ýn©T©w¼e«×ªº¸ê®Æ¤W¤~¨Ï¥Î¡C ¥t¥~¡A¤£¬O©Ò¦³ªº½s;¹³£¦³´£¨Ñ¹³uint32_tªº©w¸q(¦bstdint.h)¡C ¨S¦³ªº¸Ü¡A¦Û¤v¼g¤@¤U©T©w¼e«×ªº¼ÐÀYÀÉ¡A¤]«Ü²³æ(¤¤ÀÄÁ¥i§¹¦¨)¡C ¹ï¤@Óµ{¦¡û¨Ó»¡¡A¤£·|¤@¤Ñ¨ì±ß´«½s;¹¡A¯uªº´«½s;¹¡A¤]¤£¤@©wn§ï¼g©T©w¼e«×ªº¼ÐÀYÀÉ¡C ¯uªºn§ï¼g¡A´N¨º¤¤ÀÄÁ¡A§ï§¹«á¬Û¦Pªº½s;¹´N¥i¤@ª½©µ¥Î¡Aºâ¬O«Ü¤p«Ü¤pªºt¾á¡C
>ÁÙ¦³¥t¤@ºØ¿ï¾Ü¬O¥Î¤j¼Æ¡A§Î§O·|¦³³oºØ¦h³Â·Ð¬O¦]¦P¼Ë¬O¾ã¼Æ«o¦³«Ü¦hºØ¡AY¥Î¤j¼Æ´N²³æ¦h¤F¡A >¤£ºÞ«ç¼Ë¥h¹ê§@¥¦¡A¥un¤¤Ä~¸ê®Æ®æ¦¡²Î¤@´N¦æ¤F ÁöµM¨S³W©w¡A¦ýint«¬§O¦b½s;¹¤¤·|³]©w¦¨¥Ø¼ÐCPU¹Bºâ¤W¤ñ¸û§Ö³tªº³Ì¤j¼e«×¡A³q±`·|¬O¼È¦s¾¹©Î¬O²Ö¥[¾¹ªº¼e«×¡C ¥u¬°¤F²Î¤@«¬§O¿ï¾Ü¥Î¤j¼Æ¡A¥i¯à·|Ä묹®Ä²v©M®ö¶O¤£¥²nªº°O¾ÐªÅ¶¡¡C ©Î³\¦b°O¾ÐÅé¼e¸Î©M°ª¹Bºâ³t«×ªºPC¤W¡A§A·|ı±owho care¡C ¦ý¤£n§Ñ¤F¡A¥@¬ÉÁÙ¦³«Ü¦h¤£¦PªºCPU©MÀ³¥Î¡C ¦bembeded¨t²Î¸Ì¡A¹Bºâ³t«×©M°O¾ÐÅé¡A¨ì¥Ø«e¬°¤î¡AÁÙ¬Oµ{¦¡û¥²»Ý¦Ò¼{ªº¡C
|
|
|
2016/6/6 ¤U¤È 01:14:04
>ÁöµM¨S³W©w¡A¦ýint«¬§O¦b½s;¹¤¤·|³]©w¦¨¥Ø¼ÐCPU¹Bºâ¤W¤ñ¸û§Ö³tªº³Ì¤j¼e«× ³o¥y¸Ü×¥¿¤@¤U¡G ÁöµM¨S³W©w¡A¦ýint«¬§O¦b½s;¹¤¤·|³]©w¦¨¥Ø¼ÐCPU"®Ä²v¦Ò¶q¤U³Ì¦X²zªº¼e«×"
|
|
|
2016/6/6 ¤U¤È 03:35:07
macro without semantics
|
|
|
2016/6/6 ¤U¤È 04:45:23
>macro without semantics §Ú¤£¬O¦P·N¨Ï¥Îtypedef¤ñ¸û¦n¤F¶Ü¡H ³oÀ³¸Ó¤£¬O°Q½×«ÂI¡C §Úªº«ÂI¬O¡A¤£©T©w¼e«×ªºtype¦³¨ä¹D²z¡A´Nºâ¤£ºÞ¬Û®e©Ê¤ì¤£©y°µ§ïÅÜ¡C µ{¦¡¦³»Ýn½T©w¼e«×ªº«¬§O¡A¥i¥H²³æªº§JªA(macro,typedef ³£¬O¡Dtypedef¤ñ¸û¦n¡HOK!)
|
|
|
2016/6/6 ¤U¤È 10:31:15
size of elementary data types is not an issue. it just a part of programming language , but their implementations should be decided by compiler writers.
|
|
|
2016/6/6 ¤U¤È 11:54:27
>size of elementary data types is not an issue ... but their implementations should be decided by compiler writers. ³q±`±¡ªp¦p¦¹¡A¦ý¦³¨Ç±¡ªpprogrammer¥²»Ý½T©w«¬§Oªº¼e«×¡C n¤£µM¡A´N¤£·|¦³«Ü¦h½s;¹·|¦³stdint.h´£¨Ñ©T©w«¬§OªºÀYÀɤF¡C °£¤F«e±°Q½×¨ìªº¸g¥Ñºô¸ô©Î¨ä¥¦³q°T¤¬¶Ç¸ê®Æ»Ýn½T©wªº«¬§O¼e«×¥~¡A©|¦³«Ü¦hªºÀ³¥Î·|»Ýn©w¸q©T©w¼e«×ªº«¬§O¡C Á|Ó¨Ò¤l¡A¦p¬°¨¾¸ê®Æ·¸¦ì¤§¿ù»~µo¥Í¡A»Ýn½T»{¥Î¤§¸ê®Æ«¬§O¤§¼e«×¡C ¤S¨Ò¦p¡An§â¦¬¨ì¸ê®Æ¦s¤J ring buffer¡C ³oÓring bufferªº«¬§O¼e«×Yè¬O¬Obufferªº¤j¤p¡A¤£¦ý¦bµ{¦¡¼¶¼g«Ü¤è«K¡A®Ä²v¤W¤]°ª¡C (¤U¤@ÓÓ¦s©ñ¦ì¸m¡A¥uºÞ+1¡A¤£¥ÎºÞ·¸¦ì) ³o®É´N»Ýn½T»{ring buffer¯Á¤ÞÅܼƪº«¬§O¼e«×¡C
|
|
|
2016/6/7 ¤W¤È 08:21:48
http://pubs.opengroup.org/onlinepubs/009695399/basedefs/stdint.h.html
|
|
|
2016/6/7 ¤W¤È 09:05:02
http://linux.die.net/include/stdint.h
|
|
|
2016/7/28 ¤U¤È 11:40:05
«á±¼Ó¬n¤F¡A¦ý§ÚÁÙ¬O·Q¦^À³¤@¤U´£°Ý¡G ¡u°_ªì¦b²Ä¤@¥÷µ{¦¡¨£¨ì unsigned char ªº¼gªk®É¡Aı±o·íªì¼g³oµ{¦¡ªº¤H¤@©w¬OÓ¥Õ·ö¡v
1. ¥»¤H¦³10¦~¥H¤Wªºµ{¦¡¸gÅç¡A¥H§Ú¹L©¹ªº§@ªk¡A¦pªG»Ýn©w¸q¦r¦ê®É¡A§Ú¤]¬O¨Ï¥Î unsigned char¡C 2. ¦p¨ä¥L«e½ú©Ò¨¥¡A¦pªG¯à½T»{©Ò¦³ªº¦r¦ê¬Ò¬°¡u^¤å¡v¡A«h«Å§i char ¤]µL§«¡A¤£¹L¡A¤@¥¹¦³¤¤¤å½X¦b¤º¡A´N¡u¦³¥i¯à¡v¥X²{³B²z¿ù»~¡C 3. ¤£¿f§A»¡¡A´N¬O¦]¬°¦Y¹L char ªºÁ«¡A©Ò¥H«á¨Ó¡A§Ú¤@©w¥þ³¡«Å§i¦¨ unsigned char¡C 4. ¨Æ¹ê¤W¡A¥un¬O½w½Ä°Ï¦¡ªº°}¦C¡]«DÃö¦r¦ê¡^¡A§Ú¤]¥þ³¡³]¬° unsigned char¡A¥HÁ×§K¡u¤£¤p¤ß¡vªº¿ù»~¡C
¤Wz¡u¦³¥i¯à¡v¡B¡u¤£¤p¤ß¡v©Ò«üªº¡A¨ä¹ê´N¦b©ó¡u¦³¸¹¡v¸ò¡uµL¸¹¡vªº®t§O¡A§Ú¶È²³æªº»¡©ú¦p¤U¡G a. ·í§A¶i¦æ¡uºâ¼Æ¡v¹Bºâ®É¡A¦] char ªº bit7 ¥Nªí¥¿t¸¹¡A©Ò¥HÂX®i¦¨ int ®É¡A·|¸ò§A·Qªº¤£¦P¡C¦pªG¬Ounsigned char¡A«h³æ¯Â«e±¸É¹s¡C b. ·í§A¶i¦æ¡uÅÞ¿è¡v¹Bºâ®É¡A¦]¬° char ªº bit7 ¥Nªí¥¿t¸¹¡A©Ò¥H¶i¦æ¥k²¾¹Bºâ®É¡Aµ²ªG·|¸ò§A·Qªº¤£¦P¡C¦pªG¬Ounsigned char¡A«h³æ¯Â¥k²¾¡C c. ±qµwÅé¡]CPU¡^ªº¨¤«×¨Ó¬Ý¡A¨ä¹ê¨Ã¨S¦³©Ò¿×ªº signed bit¡A³o¨Ç¸ÑŪ¡B³£¬O½s;¹°µªº¡CCompiler «ö·Ó¬J©wªº³W½d¡A¶i¦æ¬J©wªº¡uÂX®i¡v¡B¡u¹Bºâ¡v¡B¡u½Õ¾ã¡vµ¥¡A¥un§Aµy¤£¯d¯«¡A´N¡u¦³¥i¯à¡v¡B¡u¤£¤p¤ß¡v¥X¿ù¡C¦ý¬O¡A¦pªG§A«Å§i¦¨ unsigned char¡A¨º»ò¡Acompiler ªº³B²zÅÞ¿è´N¤ñ¸û±µªñCPUªº§@ªk¡A¥Bµ²ªG¸ò¤@¯ë¤Hªº»{ª¾¬Û¦P¡A³o¤]¬O¬°¦ó¡A¹ç¥i³Q½|¥Õ·ö¡A¤]n«Å§i¦¨ unsigned char ªºì¦]¡C
|
|
|
2016/7/29 ¤W¤È 01:52:55
>±qµwÅé¡]CPU¡^ªº¨¤«×¨Ó¬Ý¡A¨ä¹ê¨Ã¨S¦³©Ò¿×ªº signed bit¡A³o¨Ç¸ÑŪ¡B³£¬O½s;¹°µªº ¤j³¡¥÷ªºCPU³£¦³¦³¸¹¹Bºâªº«ü¥O¡A©Ò¥H¦³©Ò¿×ªºsigned bit³á¡C
|
|
|
2016/7/29 ¤U¤È 01:23:36
¦hÁ«e½úªº¦^À³¡C
¥u¬O§Ú»{¬°¦pªG¬O¦]¬° signed/unsigned ·|¹ï¬Y¨Ç¤¤¤å½Xªº³B²z³y¦¨°ÝÃD¦Ó§â©Ò¦³¦r¦ê«Å§i¬° unsigned char* ªº¸Ü¡A¦ü¥G¬O¹ú¤j©ó§Q¡A ¦]¬°©M»y¨¥¼Ð·Ç¡B²ßºD¤£¦P¡A©Ò¥H¨Ï¥Î¤W·|³B³B¤£«K¡C
Y¬O§Úªº¸Ü¡A¦b§Ú»Ýn¹ï¦r¦ê¤ºªº¦r½X¶i¦æ¬Y¨Ç¦r½X³B²z®É¡A§Ú·|¹³³o¼Ë°µ¡G
// ¤¶±¤W¤´µM¨Ï¥Î¤@¯ëªº¦r¦ê«Å§i¡A¦]¬°¬O»y¨¥ºD¨Ò¡A // ªp¥B¨Ï¥ÎªÌ¤]¤£Ãö¤ß§Ú̹ï¦r½X«ç»ò°µ¨Æ¡C void big5_proc_func(char *str) { // µM«á¦b¤º³¡ªº³B²z¤¤¡A§Ú¤~§â¦r¦êÂ૬¦¨¹ï§Ú¤ñ¸û¤è«K¥B¤£©ö¥X¿ùªº«¬ºA¡C // ³o¼Ë´NÝÅU¨ì¤F¤º¡B¥~ªº¨Ï¥Î¤è«K©Ê¡C unsigned char *array = (unsigned char*) str; ...... }
static void big5_internal_util(unsigned char *str) { // ·íµM¡A¦³¨Ç®ÉÔ¤]·|¦b¨ç¼Æªº¤¶±ª½±µ«Å§i unsigned ¦r¦ê¡A // ¦ý¬O³oӨ禡¤@©w¬O§Úªº¦r½X³B²z¼Ò²Õ¤º³¡¨Ï¥Îªº¨ç¦¡¡A¦Ó¤£¬O¹ï¥~ªº¤¶±¡C // ³o¬O¦]¬°³o¨ç¦¡¥~±ªº¤H¥Î¤£¨ì¡A¦Ó¤º³¡ªº©I¥s¨Ï¥ÎYÁÙn¤@ª½Â૬¤Ï¦Ó¤£¦ÛµM¡C ...... }
> 4. ¨Æ¹ê¤W¡A¥un¬O½w½Ä°Ï¦¡ªº°}¦C¡]«DÃö¦r¦ê¡^¡A§Ú¤]¥þ³¡³]¬° unsigned char¡A¥HÁ×§K¡u¤£¤p¤ß¡vªº¿ù»~¡C
¥H§Úªº¸Ü¡A³o®É§Ú·|¥Î uint8_t ¨Ó«Å§i¡C ¨Æ¹ê¤W¡A¦ì¤¸²Õ°}¦C©M¦r¤¸°}¦C¦b¨Ï¥Î¤Wªº·N¸q¤w¸g¤£¤@¼Ë¤F¡AÁöµM©³¼h¥i¯à¬O¤@¼Ëªºì²z¡C
|
|
|
2016/7/29 ¤U¤È 01:28:50
¸É¥R¤@¤U¡C
§Úªº·N«äÁ`µ²´N¬O¡A¦pªG¨S¦³¨ä¥L¦]¯À¡A¥u¬O¬°¤F¦r½X³B²zªºì¦]ªº¸Ü¡A¦]¸Ó¦b¾A·íªº¶¥¼h¥H¤U¤~Â૬¬° unsigned char ¨Ó³B²z¡A ¦Ó¤£¬OÅý unsigned char µL¨îªºÂX±i¨ì¾ãÓ±M®×¡A³y¦¨¤@¯ë¨Ï¥Îªº¤£«K¡B¥H¤Î bug ªº·Å§É(¦]¬°¥R¥¸Â૬±Ôz)¡C ¦Ó¥B§Ú¬Û«H¦r¦êªº¤@¯ë©Ê«Å§i¡B³B²z¡B©M¨Ï¥Î¤~¬O¨Ï¥ÎÀW²v§ó°ªªº¥Î³~§a¡I
|
|
|
2016/7/29 ¤U¤È 05:44:08
https://en.wikipedia.org/wiki/Arithmetic_logic_unit ALU logic circuit
|
|
|
2016/7/29 ¤U¤È 05:59:32
http://stackoverflow.com/questions/5793740/how-does-cpu-do-subtraction
|
|
|
|
|
|
|
|
|
|
ªO¥D :
simula
Top 10 µû»ù±Æ¦æ |
 |
C++ |
|
|
|
|
|
|
|
|
|
C++ |
 |
|
¡@ |
±M®aµ¥¯Å |
µû»ù |
¡@ |
¡@ |
¤@¥N©v®v |
10000 |
¡@ |
¡@ |
Ãm¥@©_¤~ |
5000 |
¡@ |
¡@ |
³»¦y°ª¤â |
3000 |
¡@ |
¡@ |
¨ô¶V±M®a |
1500 |
¡@ |
¡@ |
Àu¨q¦n¤â |
750 |
¡@ |
|
|
|
|
|
|
|
|
Microsoft Internet Explorer
6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 µ{¦¡³]pѼֳ¡ http://www.programmer-club.com.tw/ |
|
|