CÓïÑÔÒþʽÀàÐÍת»»µÄÒ»¸öС¿Ó

·¢±íÓÚ£º2016-11-08 10:09

×ÖÌ壺´ó ÖРС | ÉÏһƪ | ÏÂһƪ | ÎÒҪͶ¸å

 ×÷ÕߣºFinalTheoryµÄ¼¼Êõ¸ÐÎ    À´Ô´£º51TestingÈí¼þ²âÊÔÍø²É±à

¡¡¡¡Õâ¸öÎÊÌâ´óÖÂÊÇÕâÑùµÄ£¬±¾À´ÊÔͼдһ¸ö²úÉúµÍ8λΪ1µÄÑÚÂëµÄÓï¾ä£º uint32_t mask = ~((uint8_t)0); £¬½á¹û·¢ÏÖËã³öµÄÑÚÂëÊÇ 0xffffffff ÏÔÈ»²»·ûºÏÔ¤ÆÚ£¬ÓÚÊÇÕÛÌÚ¼ì²éÁËÒ»·¬£¬Ð´³ö¶Ô±È³ÌÐòÈçÏ£º
#include <stdint.h>
#include <iostream>
using namespace std;
int main()
{
uint8_t z = 0;
uint32_t x = ~(uint8_t)0;
uint32_t y = (uint8_t)~0;
cout << typeid(~(uint8_t)0).name() << endl;
cout << typeid((uint8_t)~0).name() << endl;
cout << x << endl;
cout << y << endl;
}
¡¡¡¡³ÌÐòµÄÊä³ö(macOS, Clang)ÊÇ£º
¡¡¡¡i
¡¡¡¡h
¡¡¡¡4294967295
¡¡¡¡255
¡¡¡¡ËùÒÔºÜÏÔÈ»ÕâÁ½ÖÖд·¨Ö®¼äµÄϸ΢Çø±ð£¬µ¼ÖÂËù²úÉúµÄ½á¹û²¢²»Ïàͬ¡£Í¨¹ý typeid ÎÒÃÇ¿ÉÒÔ¿´µ½ÆäʵÕâÁ½¸ö±í´ïʽµÄÀàÐ;ÍÊDz»Í¬µÄ£¬ºóÕßµÄ h ÏÔÈ»ÊDZíʾ uint8_t £¬ÄÇôǰÕß¹À¼Æ¾ÍÊÇ int ÁË¡£ËùÒÔÄ¿²âÕâÀï¹À¼ÆÊǹ涨ÁËÒþʽÀàÐÍת»»Ö®ÀàµÄ£¬¹û¶ÏÈ¥·­Ò»Ï C99 ±ê×¼£¬¹û²»ÆäÈ»£¬ 6.5 ½Ú¿ªÍ·¾Í¹æ¶¨ÈçÏ£º
¡¡¡¡È»ºóÔÚ 6.5.3.3 ÓÖÓÐÈçϽâÊÍ£º
¡¡¡¡ËùÒÔ£¬ÔÚÕâÀﰴλȡ·´ÔËËã·ûʵ¼ÊÉÏÊÇ¶Ô uint8_t ½øÐÐÁËÕûÐÍÌáÉý£¬È»ºóÈ¡·´µÄÔËËã½á¹ûÒ²ÊÇÕûÊýÀàÐ굀 -1 £¬µ±×ª»»ÎªÎÞ·ûºÅÕûÊýµÄʱºò×ÔÈ»¾Í»áµ¼ÖÂËùÓÐ bit ¶¼ÊÇ1£¬¶ø²»ÊÇÆÚÍûµÄÖ»ÓÐ×îµÍλһ¸ö×Ö½ÚΪ1ÁË¡£
¡¡¡¡×ܶøÑÔÖ®£¬ÓïÒåÀí½â²»ÇåÎú£¬¾Í¹û¶ÏÈ¥·­ÏàÓ¦µÄspec°É¡£
¡¶2023Èí¼þ²âÊÔÐÐÒµÏÖ×´µ÷²é±¨¸æ¡·¶À¼Ò·¢²¼~

¹Ø×¢51Testing

ÁªÏµÎÒÃÇ

¿ì½ÝÃæ°å Õ¾µãµØͼ ÁªÏµÎÒÃÇ ¹ã¸æ·þÎñ ¹ØÓÚÎÒÃÇ Õ¾³¤Í³¼Æ ·¢Õ¹Àú³Ì

·¨ÂɹËÎÊ£ºÉϺ£À¼µÏÂÉʦÊÂÎñËù ÏîÆåÂÉʦ
°æȨËùÓÐ ÉϺ£²©Îª·åÈí¼þ¼¼Êõ¹É·ÝÓÐÏÞ¹«Ë¾ Copyright©51testing.com 2003-2024
ͶËß¼°Òâ¼û·´À¡£ºwebmaster@51testing.com; ÒµÎñÁªÏµ£ºservice@51testing.com 021-64471599-8017

»¦ICP±¸05003035ºÅ

»¦¹«Íø°²±¸ 31010102002173ºÅ