[英]Cast between unsigned and signed char. How to?
我有一個問題,作為一名學生,我必須使用OpenSSL。 我的任務是計算帶有盲目性的RSA簽名,它同時使用char
和unsigned char
。 我說這是為了防止任何人想知道為什么我如此復雜地使用char
和unsigned char
這些類型。
我的問題是,在不使用指針,向量/指針以及為什么不使用矩陣的情況下,將char
和unsigned 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.