1樓:心冰依然
這取決於int的字長,如果32位int,int*型別的指標+1,它的位址加4,如果是64位的int,int*型別+1,它所在位址就加8,
題目中tt為int*型別,tt+0x1300*4,就相當於tt所在的位址+(0x1300*4)*4
故此,輸出aa既aa指標的位址就是5401b
2樓:
int *tt=(int*)0x4101b;
int *aa;
aa = tt+1;這裡的加1,不是說位址加上1個位元組,而是下乙個整型變數的位址,一般整型變數佔四個位元組,所以aa的值為0x4101b+4;
同理:aa=tt+0x1300*4;
實際上是0x4101b+0x1300*4*4;
你可以將int*改為char*試一下,對比一下結果就知道了
3樓:匿名使用者
tt是乙個指標?你讓指標與int相加?
我看你的**應該改成
int tt=0x4101b;
int aa=tt+0x1300*4;
cout< 最後使用count< char *tt=(char*)0x4101b; char *aa; aa=tt+0x1300*4; 這樣aa的值就成了0x45c1b了 c++十六進製制求和? 4樓:匿名使用者 #include"stdio.h" void main() 對應不同型別資料的輸出,類似於輸入函式,c語言用不同的格式字元描述。 d:以帶符號的十進位制整數形式輸出整數(正數不輸出符號)。 o:以無符號八進位制整數形式輸出整數(不輸出前導符o)。 x:以無符號十六進製制整數形式輸出整數(不輸出前導符ox)。 u:以無符號十進位制整數形式輸出整數。 c:以字元形式輸出,輸出乙個字元。 s:以字串形式輸出,輸出字串的字元至結尾符』\o』為止。 f:以小數形式輸出實數,隱含輸出1位整數,6位小數。 e:以標準指數形式輸出實數,數字部分隱含1位整數,6位小數。 g:根據給定的值和精度,自動選擇f與e中較緊湊的一種格式,不輸出無意義的o。 5樓:匿名使用者 10進製加法會吧?就是個位加,如果滿10就高位加1,本位取減10的餘數 16進製制查不多,就是滿16高位加1,本位取減16的餘數 6樓: int a,b; scanf("%x%x",&a,&b); printf("%x",a+b); 讀入16進製制數,輸出16進製制數,如a3 7結果是aa 7樓:風龍一 用scanf("%x",&a[i])輸入 然後直接求和後用printf("%x",sum)輸出就可以了:) 8樓:匿名使用者 說起這些進製的演算法我是一點不懂,但是我們班有的同學竟然能在10秒鐘就能算出這些來。 9樓:匿名使用者 直接求,輸入數設成16進製制,求出來的數弄成16進製制輸出就好了 c++十六進製制的加減乘除求餘的程式設計如何?
10 10樓:夢見鈔 資料讀進去直接運算就行了+-*/,用c語言原來的就行 用c++實現輸入兩個十六進製制數相加或相減,輸出其二進位制數相加或相減,結果為十進位制數 11樓:yty隨意 1、首先,定義乙個bai整型數du組,儲存所有的整數。zhi 2、定義乙個自定義函式dao,判版斷兩個數的大小。自定義函式中,權如果兩個整數不相同,則判斷它們的大小。 3、主函式中,先定義兩個整型變數,儲存數值的個數和有無相同數值的判斷。 4、輸入數值的個數,儲存在變數n中。輸入所有的數值,儲存在陣列num中。 5、將陣列中的所有數值按從小到大的順序排列,如下圖所示。 6、用for迴圈語句判斷每個數值,是否有相同的數。如果乙個數有相同的數值,則輸出所有相同數,用while語句實現所有數的判斷。 12樓:匿名使用者 |#include using namespace std; int gethex(char *s) return r; }void main() else i++; } if ( b>=0 ) { bb=( str[b]=='+' )?(0):(1); str[b]=0; x=gethex(str); y=gethex(str+b+1); z=x; z+=( bb )?(-y):(y); for ( i=0,b=0x1000;i<13;i++,b>>=1 ) cout<<(( x&b )?(1):(0)); cout<<' '<<(( bb )?('-'):('+'))<<' '; for ( i=0,b=0x1000;i<13;i++,b>>=1 ) cout<<(( y&b )?(1):(0)); cout<<" = "< 求用c++寫的兩個十六進製制數相加的程式,如75+31=a6,請用函式呼叫寫,謝謝~ 13樓:虎爺可樂 我重新寫了個,先把兩個數轉為 10 進製,算完再轉為 16 進製。完整**如下: #include #include #include //進製轉換 int hex2int(char *str, int *result)else if(*str >= 'a' && *str <= 'f')else if(*str >= 'a' && *str <= 'f')else }return 0; }int int2num(int num, char **result, char scale) if(num)else if(*temp == 0)*result = strdup(temp); int2num(a + b , &x, 16); return x; }int main() 14樓:匿名使用者 這個函式本身沒有問題,16進製表示只是你顯示上而已,其實還是那個數0x6a(或106)。 比如 你可以按照16進製制列印出來, printf(" %x",add(75,31)); 或者 可以按照10進製列印出來, printf(" %d",add(75,31)); 結果和進製沒有關係!!! 用c++編寫程式輸入十六進製制數 15樓:匿名使用者 你裡面的下標一時是checklength+1,一時是checklength,這裡處理有問題。修正如下: istream& operator>>(istream& i, hex& n) n.m_num[checklength-1]=s[checklength]; checklength++; }n.m_num[checklength-1]='\0'; }else n.m_num[checklength]=s[checklength]; checklength++; }n.m_num[checklength]='\0'; }return i;} 16樓: 為什麼這麼複雜?以下就行了…… //#include "stdafx.h"//vc++6.0加上這一行. #include using namespace std; void main(void) 十六進製制ffff轉換成十進位制是65535,在十六進製制中f表示15。十六進製制轉十進位制的方法和二進位制轉十進位制的方法類似。也是將各權值相加得到十進位制數。計算過程 第一位的權值為15乘以16的0次方等於15,第二位的權值為15乘以16的1次方等於240,第三位的權值為15乘以16的2次方等於... 分別用a b c d e f表示,這裡字母和 等數字是等價的。比如16進製制的3b這個數,化成十進位制就是3 16 11 59若是十進位制轉化成十六進製制,比如2345,可以這樣轉換 2344除以16等於146餘8 146除以16等於9餘2 9除以16餘9,將三個餘數反過來排列,則可得2344轉化為... 清溪看世界 將十六進位制數轉換為二進位制數,只需將每一位的十六進位制數轉換為相應的4位二進位制數,然後組合起來即可。所以與十六進位制數bc等值的二進位制數是10111100,應該選擇b項。擴充套件資料二進位制與十六進位制之間的轉換 1 二進位制數轉換成十六進位制數 由於2的4次方 16,所以依照二進...十六進製制轉換十進位制,十六進製制轉換十進位制 ffff
十六進製制是什麼,十六進製制是什麼意思?
十六進位制如何轉換成二進位制,十六進位制如何轉換為二進位制