{"id":2584,"date":"2022-04-23T03:12:18","date_gmt":"2022-04-22T19:12:18","guid":{"rendered":"https:\/\/www.clonefactor.com\/wordpress\/?p=2584"},"modified":"2022-04-23T03:52:28","modified_gmt":"2022-04-22T19:52:28","slug":"%e7%94%a8-float-%e5%81%9a-bitwise-operation","status":"publish","type":"post","link":"https:\/\/www.clonefactor.com\/wordpress\/program\/c\/2584\/","title":{"rendered":"\u7528 float \u505a bitwise operation"},"content":{"rendered":"\n<p>\u5b78\u5230\u4e00\u500b\u6709\u8da3\u7684\u65b9\u6cd5,\u5728 float \u505a\u5feb\u901f\u7684\u8f49\u63db.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[StructLayout(LayoutKind.Explicit)]\npublic struct SampleUnion\n{\n[FieldOffset(0)] public float f = 1;\n[FieldOffset(0)] public int   i;\n}<\/pre>\n\n\n\n<p>\u9019\u908a\u9700\u8981\u5148\u4e86\u591a\u7684\u662f C# \u5b9a\u7fa9 variable \u7684\u6642\u5019\u5176\u5be6 compiler \u6703\u81ea\u5df1\u8dd1\u53bb memory \u5e6b\u4f60\u6c7a\u5b9a\u6bcf\u5728 local variables \u5728 memory layout \u4e0a\u7684\u4f4d\u7f6e.<br>\u800c\u9019\u908a\u7684 &#8220;StructLayout(LayoutKind.Explicit)&#8221;<br>Explicit \u5c31\u662f\u544a\u8a34 C# \u7531\u6211\u5011\u4f86\u6c7a\u5b9a\u6bcf\u500b variable \u7684\u8a18\u61b6\u9ad4\u4f4d\u7f6e.<br>&#8220;FieldOffset(#)&#8221; \u5c31\u662f\u5b9a\u7fa9\u63a5\u4e0b\u4f86\u7684\u8b8a\u6578\u5728\u8a18\u61b6\u9ad4\u4e0a\u7684\u4f4d\u7f6e.<\/p>\n\n\n\n<p>\u6240\u4ee5\u7576 float &amp; int \u5169\u500b\u90fd\u662f 4 bytes \u7684 variable \u90fd\u5728 memory layout \u7684\u8d77\u59cb\u4f4d\u7f6e\u7684\u8a71<br>\u5c31\u8b8a\u6210 4byte * 8 bits, \u6574\u6574 32 bits \u7684\u8a18\u61b6\u9ad4\u91cd\u758a\u5728\u540c\u4e00\u500b memory block \u88e1\u9762.<\/p>\n\n\n\n<p>\u6240\u4ee5\u5c31\u53ef\u4ee5\u900f\u904e &#8220;i&#8221; \u4f86\u62ff\u5230 &#8220;f&#8221; \u7684\u503c, \u4f46\u4e0d\u662f\u6b63\u5e38\u7684\u8f49\u63db. \u4f46\u8655\u65bc int \u7684\u60c5\u6cc1\u4e0b,\u5982\u679c\u4e0d\u662f\u7528\u4f86\u505a\u6578\u503c\u904b\u7b97\u7684\u8a71.<br>\u5c31\u53ef\u4ee5\u7528 bitwise \u7684\u65b9\u5f0f\u4f86\u8655\u7406\u5f88\u591a\u8f49\u63db\u800c\u4e0d\u9700\u8003\u616e floating \u7684\u5c0f\u6578\u7cbe\u5ea6\u554f\u984c.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"304\" src=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2022\/04\/float_memory_layout.jpg\" alt=\"\" class=\"wp-image-2585\" srcset=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2022\/04\/float_memory_layout.jpg 750w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2022\/04\/float_memory_layout-300x122.jpg 300w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2022\/04\/float_memory_layout-359x146.jpg 359w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"875\" height=\"477\" src=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2022\/04\/int_memory_layout.png\" alt=\"\" class=\"wp-image-2586\" srcset=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2022\/04\/int_memory_layout.png 875w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2022\/04\/int_memory_layout-300x164.png 300w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2022\/04\/int_memory_layout-768x419.png 768w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2022\/04\/int_memory_layout-359x196.png 359w\" sizes=\"auto, (max-width: 875px) 100vw, 875px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5b78\u5230\u4e00\u500b\u6709\u8da3\u7684\u65b9\u6cd5,\u5728 float \u505a\u5feb\u901f\u7684\u8f49\u63db. \u9019\u908a\u9700\u8981\u5148\u4e86\u591a\u7684\u662f C# \u5b9a\u7fa9 variable &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-2584","post","type-post","status-publish","format-standard","hentry","category-c"],"_links":{"self":[{"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/posts\/2584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/comments?post=2584"}],"version-history":[{"count":1,"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/posts\/2584\/revisions"}],"predecessor-version":[{"id":2587,"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/posts\/2584\/revisions\/2587"}],"wp:attachment":[{"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/media?parent=2584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/categories?post=2584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/tags?post=2584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}