簡體   English   中英

在未簽名和已簽名字符之間進行轉換。 如何?

[英]Cast between unsigned and signed char. How to?

我有一個問題,作為一名學生,我必須使用OpenSSL。 我的任務是計算帶有盲目性的RSA簽名,它同時使用charunsigned char 我說這是為了防止任何人想知道為什么我如此復雜地使用charunsigned char這些類型。

我的問題是,在不使用指針,向量/指針以及為什么不使用矩陣的情況下,將charunsigned char用於char的規則和良好實踐建議是什么。

如果需要更多詳細信息,我很樂意遵守。 不用說,我已經搜索了,但是除了強制轉換int和unsigned int以外,找不到其他任何令人滿意的答案,因此,如果這是重新發布,請毫不猶豫地將我指向正確的方向。

char yourChar = 'a';
unsigned char yourUChar = static_cast<unsigned char>(yourChar);

int yourInt = 1;
unsigned int yourUInt = static_cast<unsigned int>(yourInt);

向量只是多個整數,您需要將向量中的每個成員強制轉換。 矩陣也是如此。

如果將具有負值的有符號值轉換為無符號類型,則可能會產生不良行為。 例如,將-1強制轉換為無符號的int會為您提供-1的按位值,強制轉換為無符號的int。 一個-1的32位有符號整數以十六進制表示0xFFFFFFFF,二進制全為1,並將其強制轉換為無符號將使這些位保留為1,但是您沒有最大的32位無符號整數,即4,294,967,295。

暫無
暫無

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

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