簡體   English   中英

將字符串轉換為短

[英]Convert string to short

我有一個包含下一個值的字符串: 0x6007.(stringToShort)我想將此字符串轉換為short var,但是,當我嘗試以另一種方式轉換時:

short s = ((short)Convert.ToUInt16(stringToShort, 16));

然后s等於24583而不是我需要的0x6007

有人可以幫忙嗎?

諸如“ 0x6007”和“ 24583”之類的值供人類使用 它們是數字的文字表示形式,僅對人類有意義。

就計算機而言,在處理實際數字時,它僅理解二進制(甚至在那里,僅是抽象意義上的……它實際上不存儲二進制數字0和1)。

每當您問計算機它想輸入什么數字時,它都會從基於二進制的表示形式轉換為人類可讀的表示形式(即使二進制...我們微不足道的人也看不到計算機中位的狀態,因此必須要求計算機將其轉換為視覺表示)。

當將值0x6007存儲在(例如) short變量中時,該變量包含值0x6007 它還包含值24583 哦,它也包含了價值110000000000111 (二進制),和值60007 (八進制),甚至是價值12287 (基地十二)個。 因為計算機存儲的不是數字的任何特定表示,而是其自己的內部表示的任何人類可讀數字表示的大小。

但是他們都是一樣的。 而且,當您解析人類可讀的字符串(例如“ 0x6007”)時,您確實會在存儲結果的變量中得到該值,即計算機內部表示的幅度相同的數字。

默認情況下,如果您要求計算機告訴您該值是多少,它將以十進制表示形式“ 24583”。 但是,如果您要使用十六進制表示形式,則只需要很好地詢問即可,計算機會自動將其提供給您(例如,在調試器中切換數字顯示格式,或在string.Format()使用“ X”數字格式說明符, Console.WriteLine()等)。

暫無
暫無

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

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