40 ビュー (過去 30 日間)
Jed Louise Ledesma 2019 年 10 月 17 日

Can someone help me how to add 2 hexadecimal numbers? I would appreciate the help and sentiment.
I tried using: c=dec2hex(hex2dec(a)+hex2dec(b)));
But it didn't work. Is there a correct way to do this?

サインインしてコメントする。

### 採用された回答

Robert U 2019 年 10 月 17 日
Hi Jed Louise Lesma,
Despite the extra bracket in your code (I removed it), the method you tried should work:
a = '3afb';
b = '2839';
c=dec2hex(hex2dec(a)+hex2dec(b));
Kind regards,
Robert

#### 3 件のコメント

Jed Louise Ledesma 2019 年 10 月 17 日
Hello Robert,
Thank you for replying! Sorry about the extra bracket my eyes were kinda hazy.
Can this code also be used in a gui?
c=dec2hex(hex2dec(a)+hex2dec(b));
I tried inputting it like this:
a = str2double(get(handles.edit1, 'String'));
b = str2double(get(handles.edit2, 'String'));
c = dec2hex(hex2dec(a)+hex2dec(b));
but it responded with this:
Error using hex2dec>hex2decImpl (line 58)
Input to hex2dec should have just 0-9, a-f, or A-F.
Robert U 2019 年 10 月 17 日
The "hex"-values are supposed to be given as char. Thus the str2double()-command should be deleted.
Kind regards,
Robert
Jed Louise Ledesma 2019 年 10 月 17 日
I appreciate what you did.
Thank you!

サインインしてコメントする。

### その他の回答 (2 件)

Steven Lord 2019 年 10 月 17 日
If you're using release R2019b or later, you can enter hexadecimal numbers directly.
>> 0x3afb + 0x2839
ans =
uint16
25396
>> hex2dec('3afb')+hex2dec('2839')
ans =
25396

#### 0 件のコメント

サインインしてコメントする。

Walter Roberson 2019 年 10 月 17 日
If there is a possibility that the user might enter hex values with more than 53 significant bits then you should use sscanf with %lx format instead of hex2dec.

サインインしてコメントする。

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by