簡體   English   中英

如果我使用ubyte數組將數字存儲在C程序中,如何添加兩個48位十六進制數字

[英]How to add two 48bits hex number if I use ubyte array to store the numbers In C program

假設我有兩個初始化為的ubyte數組

ubyte Hex_arr1[6] = {0xF6,0x31,0xA5,0x16,0x6B,0xE7}

ubyte Hex_arr2[6] = {0x00,0x00,0x00,0x00,0x00,0x20}

如何在C中添加這兩個數組並將結果存儲在Hex_arr1

我不能簡單地按位添加它們,因為加法可能帶有進位。那么如何處理進位呢?

您可以像在紙上一樣進行操作。 您將最右邊的兩個數字相加(轉換為不會溢出的較寬整數類型之后),並將最低有效字節存儲到結果中。 然后將前一個總和向下移動一個字節寬度(為您帶來隨身攜帶的東西),並向其加上最右第二位的兩個數字,重復此過程,直到剩下的就是48-位加法。

如果您不關心進位,則可以簡單地將數組轉換為兩個64位無符號整數,將它們相加,然后丟棄前16位。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM